factor variable expansion out of assignment
[scpubgit/DKit.git] / lib / DX / Op / MemberOf.pm
CommitLineData
b40e416a 1package DX::Op::MemberOf;
2
3use DX::ArrayStream;
4use Moo;
5
6with 'DX::Role::Op';
7
8has member_var => (is => 'ro', required => 1);
9has coll_name => (is => 'ro', required => 1);
10
11sub run {
12 my ($self, $state) = @_;
13 my $member = $state->scope_var($self->member_var);
14 die "member bound" if $member->is_bound;
15 my $set = $state->facts->{$self->coll_name};
16 my $stream = DX::ArrayStream->from_array(@{$set}{sort keys %$set});
17 return $state->bind_stream_then($member, $stream, $self->next);
18}
19
201;