move to on_solution_step concept
[scpubgit/DX.git] / lib / DX / SearchState.pm
index a19a416..0702168 100644 (file)
@@ -3,6 +3,7 @@ package DX::SearchState;
 use Types::Standard qw(Maybe);
 use DX::Step::Backtrack;
 use DX::Step::InvokeNextPredicate;
+use DX::Step::MarkAsSolution;
 use DX::Class;
 
 has current_hypothesis => (is => 'ro', isa => Hypothesis, required => 1);
@@ -17,6 +18,8 @@ has is_solution_state => (is => 'ro', required => 1);
 
 has on_exhaustion_step => (is => 'ro', required => 1);
 
+has on_solution_step => (is => 'ro', required => 1);
+
 sub next_proposition {
   my ($self, $hyp) = @_;
   $hyp ||= $self->current_hypothesis;
@@ -41,6 +44,7 @@ sub new_for {
       : ( is_solution_state => 1 )
     ),
     on_exhaustion_step => undef,
+    on_solution_step => DX::Step::MarkAsSolution->new,
   );
 }