SelectionContext

Struct SelectionContext 

Source
pub struct SelectionContext<'a> { /* private fields */ }
Expand description

The context provided to the [Brancher], it allows the retrieval of domain values of variables and access to methods from a Random generator.

Implementations§

Source§

impl<'a> SelectionContext<'a>

Source

pub fn new( assignments: &'a Assignments, rng: &'a mut dyn Random, ) -> SelectionContext<'a>

Source

pub fn are_all_variables_assigned(&self) -> bool

Source

pub fn random(&mut self) -> &mut dyn Random

Returns a random generator which can be used to generate random values (see Random for more information).

Source

pub fn get_size_of_domain<Var>(&self, var: Var) -> i32
where Var: IntegerVariable,

Returns the difference between the upper-bound and the lower-bound of the provided IntegerVariable. Note that this is different from the number of values which are in the domain of var since this calculation does not take into account holes in the domain.

Source

pub fn lower_bound<Var>(&self, var: Var) -> i32
where Var: IntegerVariable,

Returns the lower bound of the provided IntegerVariable

Source

pub fn upper_bound<Var>(&self, var: Var) -> i32
where Var: IntegerVariable,

Returns the upper bound of the provided IntegerVariable

Source

pub fn contains<Var>(&self, var: Var, value: i32) -> bool
where Var: IntegerVariable,

Determines whether the provided value is in the domain of the provided IntegerVariable

Source

pub fn is_integer_fixed<Var>(&self, var: Var) -> bool
where Var: IntegerVariable,

Determines whether the provided IntegerVariable has a unit domain (i.e. a domain of size 1)

Source

pub fn is_predicate_assigned(&self, predicate: Predicate) -> bool

Source

pub fn get_domains(&self) -> DomainGeneratorIterator

Returns all currently defined [DomainId]s.

Trait Implementations§

Source§

impl<'a> Debug for SelectionContext<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for SelectionContext<'a>

§

impl<'a> !RefUnwindSafe for SelectionContext<'a>

§

impl<'a> !Send for SelectionContext<'a>

§

impl<'a> !Sync for SelectionContext<'a>

§

impl<'a> Unpin for SelectionContext<'a>

§

impl<'a> !UnwindSafe for SelectionContext<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

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>

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)

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)

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<'src, T> IntoMaybe<'src, T> for T
where T: 'src,

Source§

type Proj<U: 'src> = U

Source§

fn map_maybe<R>( self, _f: impl FnOnce(&'src T) -> &'src R, g: impl FnOnce(T) -> R, ) -> <T as IntoMaybe<'src, T>>::Proj<R>
where R: 'src,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V