Commit | Line | Data |
---|---|---|
55131db4 | 1 | package DX::Step::Backtrack; |
2 | ||
3 | use DX::Class; | |
4 | ||
5 | with 'DX::Role::Step'; | |
6 | ||
7 | sub apply_to { | |
8 | my ($self, $ss) = @_; | |
76329453 | 9 | foreach my $adj (@{$ss->adjustments_made}) { |
10 | my ($step_was, $ss_was) = @$adj; | |
11 | if (my $alt = $step_was->alternative_step) { | |
12 | return $ss_was->but(next_step => $alt); | |
13 | } | |
14 | } | |
15 | return $ss->but(next_step => $ss->on_exhaustion_step); | |
55131db4 | 16 | } |
17 | ||
18 | 1; |