use crate::{PropagationContext, PropagationStatus, VariableId};
use dyn_clone::DynClone;
dyn_clone::clone_trait_object!(Propagator);
pub trait Propagator: DynClone + Send {
fn watched_variables(&self) -> &[VariableId];
fn propagate(&mut self, ctx: &mut dyn PropagationContext) -> PropagationStatus;
fn priority(&self) -> u32 {
0
}
}