factor action execution out into solver method
[scpubgit/DKit.git] / lib / DX / Solver.pm
index e94e050..2042a10 100644 (file)
@@ -36,4 +36,12 @@ sub query {
   );
 }
 
+sub run_action {
+  my ($self, $action) = @_;
+  my @invalidate = $action->run;
+  while (my ($type, $value) = splice @invalidate, 0, 2) {
+    $self->facts->{$type}->remove_value($value);
+  }
+}
+
 1;