pub struct Non;
Expand description
Default implementation for Logger, Propagator, GroundProgramObserver, FunctionHandler and SolveEventHandler
Trait Implementations§
source§impl FunctionHandler for Non
impl FunctionHandler for Non
source§impl GroundProgramObserver for Non
impl GroundProgramObserver for Non
source§fn init_program(&mut self, _incremental: bool) -> bool
fn init_program(&mut self, _incremental: bool) -> bool
Called once in the beginning. Read more
source§fn begin_step(&mut self) -> bool
fn begin_step(&mut self) -> bool
Marks the beginning of a block of directives passed to the solver. Read more
source§fn end_step(&mut self) -> bool
fn end_step(&mut self) -> bool
Marks the end of a block of directives passed to the solver. Read more
source§fn rule(
&mut self,
_choice: bool,
_head: &[Atom],
_body: &[SolverLiteral]
) -> bool
fn rule( &mut self, _choice: bool, _head: &[Atom], _body: &[SolverLiteral] ) -> bool
Observe rules passed to the solver. Read more
source§fn weight_rule(
&mut self,
_choice: bool,
_head: &[Atom],
_lower_bound: i32,
_body: &[WeightedLiteral]
) -> bool
fn weight_rule( &mut self, _choice: bool, _head: &[Atom], _lower_bound: i32, _body: &[WeightedLiteral] ) -> bool
Observe weight rules passed to the solver. Read more
source§fn minimize(&mut self, _priority: i32, _literals: &[WeightedLiteral]) -> bool
fn minimize(&mut self, _priority: i32, _literals: &[WeightedLiteral]) -> bool
Observe minimize constraints (or weak constraints) passed to the solver. Read more
source§fn project(&mut self, _atoms: &[Atom]) -> bool
fn project(&mut self, _atoms: &[Atom]) -> bool
Observe projection directives passed to the solver. Read more
source§fn output_atom(&mut self, _symbol: Symbol, _atom: Atom) -> bool
fn output_atom(&mut self, _symbol: Symbol, _atom: Atom) -> bool
Observe shown atoms passed to the solver. Read more
source§fn output_term(&mut self, _symbol: Symbol, _condition: &[SolverLiteral]) -> bool
fn output_term(&mut self, _symbol: Symbol, _condition: &[SolverLiteral]) -> bool
Observe shown terms passed to the solver. Read more
source§fn output_csp(
&mut self,
_symbol: Symbol,
_value: i32,
_condition: &[SolverLiteral]
) -> bool
fn output_csp( &mut self, _symbol: Symbol, _value: i32, _condition: &[SolverLiteral] ) -> bool
Observe shown csp variables passed to the solver. Read more
source§fn external(&mut self, _atom: Atom, _type_: ExternalType) -> bool
fn external(&mut self, _atom: Atom, _type_: ExternalType) -> bool
Observe external statements passed to the solver. Read more
source§fn assume(&mut self, _literals: &[SolverLiteral]) -> bool
fn assume(&mut self, _literals: &[SolverLiteral]) -> bool
Observe assumption directives passed to the solver. Read more
source§fn heuristic(
&mut self,
_atom: Atom,
_type_: HeuristicType,
_bias: i32,
_priority: u32,
_condition: &[SolverLiteral]
) -> bool
fn heuristic( &mut self, _atom: Atom, _type_: HeuristicType, _bias: i32, _priority: u32, _condition: &[SolverLiteral] ) -> bool
Observe heuristic directives passed to the solver. Read more
source§fn acyc_edge(
&mut self,
_node_u: i32,
_node_v: i32,
_condition: &[SolverLiteral]
) -> bool
fn acyc_edge( &mut self, _node_u: i32, _node_v: i32, _condition: &[SolverLiteral] ) -> bool
Observe edge directives passed to the solver. Read more
source§fn theory_term_number(&mut self, _term_id: Id, _number: i32) -> bool
fn theory_term_number(&mut self, _term_id: Id, _number: i32) -> bool
Observe numeric theory terms. Read more
source§fn theory_term_string(&mut self, _term_id: Id, _name: &str) -> bool
fn theory_term_string(&mut self, _term_id: Id, _name: &str) -> bool
Observe string theory terms. Read more
source§fn theory_term_compound(
&mut self,
_term_id: Id,
_name_id_or_type: i32,
_arguments: &[Id]
) -> bool
fn theory_term_compound( &mut self, _term_id: Id, _name_id_or_type: i32, _arguments: &[Id] ) -> bool
Observe compound theory terms. Read more
source§fn theory_element(
&mut self,
_element_id: Id,
_terms: &[Id],
_condition: &[SolverLiteral]
) -> bool
fn theory_element( &mut self, _element_id: Id, _terms: &[Id], _condition: &[SolverLiteral] ) -> bool
Observe theory elements. Read more
source§impl Propagator for Non
impl Propagator for Non
source§fn init(&mut self, _init: &mut PropagateInit) -> bool
fn init(&mut self, _init: &mut PropagateInit) -> bool
This function is called once before each solving step.
It is used to map relevant program literals to solver literals, add watches for solver
literals, and initialize the data structures used during propagation. Read more
source§fn propagate(
&mut self,
_control: &mut PropagateControl,
_changes: &[SolverLiteral]
) -> bool
fn propagate( &mut self, _control: &mut PropagateControl, _changes: &[SolverLiteral] ) -> bool
Can be used to propagate solver literals given a
partial assignment
Assignment
. Read moresource§fn undo(&mut self, _control: &mut PropagateControl, _changes: &[SolverLiteral])
fn undo(&mut self, _control: &mut PropagateControl, _changes: &[SolverLiteral])
Called whenever a solver undoes assignments to watched solver literals. Read more
source§fn check(&mut self, _control: &mut PropagateControl) -> bool
fn check(&mut self, _control: &mut PropagateControl) -> bool
This function is similar to
PropagateControl::propagate()
but is only
called on total assignments without a change set. Read moresource§fn decide(
&mut self,
_thread_id: Id,
_assignment: &Assignment,
_fallback: SolverLiteral,
_decision: &mut SolverLiteral
) -> bool
fn decide( &mut self, _thread_id: Id, _assignment: &Assignment, _fallback: SolverLiteral, _decision: &mut SolverLiteral ) -> bool
This function allows a propagator to implement domain-specific heuristics. Read more
source§impl SolveEventHandler for Non
impl SolveEventHandler for Non
source§fn on_solve_event(&mut self, _event: SolveEvent<'_>, _goon: &mut bool) -> bool
fn on_solve_event(&mut self, _event: SolveEvent<'_>, _goon: &mut bool) -> bool
Callback function called during search to notify when the search is finished or a model is ready Read more
impl Copy for Non
Auto Trait Implementations§
impl RefUnwindSafe for Non
impl Send for Non
impl Sync for Non
impl Unpin for Non
impl UnwindSafe for Non
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