first cut of rspace/rstrat code with eq semi cut over
[scpubgit/DX.git] / lib / DX / ResolutionStrategy.pm
1 package DX::ResolutionStrategy;
2
3 use DX::Class;
4
5 has action_prototypes => (is => 'ro', required => 1);
6
7 has veracity_depends_on_builder => (is => 'ro', required => 1);
8
9 has implementation_candidates => (is => 'ro', required => 1);
10
11 has aperture => (is => 'lazy', builder => sub {
12   my ($self) = @_;
13   return [
14     # [ $thing, 'set_value' ] -> $thing->aperture_for_set_value
15     map @{$_->[0]->${\'aperture_for_'.$_[1]}()},
16       @{$self->action_prototypes}
17   ];
18 });
19
20 1;