excise non-functioning depency group system
[scpubgit/DX.git] / lib / DX / Predicate / Eq.pm
1 package DX::Predicate::Eq;
2
3 use DX::Utils qw(step CONTENTS_OF);
4 use DX::Class;
5
6 with 'DX::Role::Predicate';
7
8 sub _possible_resolution_list {
9   my ($self, $left, $right) = @_;
10   if ($left->equals($right)) {
11     return step(
12       actions => [],
13       depends_on => [
14         [ CONTENTS_OF ,=> $left ], [ CONTENTS_OF ,=> $right ]
15       ],
16     );
17   }
18   return (
19     do {
20       if ($left->is_set and my $set = $right->action_for_set_value($left)) {
21         step(
22           actions => [ $set ],
23           depends_on => [
24             [ CONTENTS_OF ,=> $left ], [ CONTENTS_OF ,=> $right ]
25           ]
26         )
27       } else {
28         ()
29       }
30     },
31     do {
32       if ($right->is_set and my $set = $left->action_for_set_value($right)) {
33         step(
34           actions => [ $set ],
35           depends_on => [
36             [ CONTENTS_OF ,=> $left ], [ CONTENTS_OF ,=> $right ]
37           ]
38         )
39       } else {
40         ()
41       }
42     },
43   );
44 }
45
46 1;