use crate::{DomainView, PropagatorId, VariableId};
pub trait PropagationContext {
fn domain(&self, var: VariableId) -> &dyn DomainView<Value = i32>;
fn current_propagator(&self) -> Option<PropagatorId> {
None
}
fn remove_below(&mut self, var: VariableId, bound: i32) -> bool;
fn remove_above(&mut self, var: VariableId, bound: i32) -> bool;
fn remove_value(&mut self, var: VariableId, value: i32) -> bool;
fn fixed_value(&self, var: VariableId) -> Option<i32>;
fn record_propagator_conflict(&mut self, _literals: &[(VariableId, i32)]) {}
}