1 package DX::Op::MemberLookup;
7 has member_var => (is => 'ro', required => 1);
8 has coll_name => (is => 'ro', required => 1);
9 has key_name => (is => 'ro', required => 1);
10 has key_var => (is => 'ro', required => 1);
13 my ($self, $state) = @_;
14 my ($member, $key) = map $state->scope_var($self->$_), qw(member_var key_var);
15 die "key unbound" unless $key->is_bound;
16 die "member bound" if $member->is_bound;
17 my $set = $state->facts->{$self->coll_name};
18 if (my $value = $set->{$key->bound_value}) {
19 return $state->bind_var_then($member, $value, $self->next);
21 return $state->backtrack;