Commit | Line | Data |
---|---|---|
6b6ce2e0 | 1 | package Data::Perl::Collection::Set; |
2 | ||
3 | use Moose; | |
4 | use Method::Signatures::Simple; | |
5 | use Data::Perl::Stream::Array; | |
6 | ||
7 | has '_members' => (is => 'ro', required => 1, init_arg => 'members'); | |
8 | ||
9 | method map ($fun) { | |
10 | (ref $self)->new( | |
11 | members => [ map $fun->($_), @{$self->_members} ] | |
12 | ) | |
13 | } | |
14 | ||
15 | method to_stream { | |
16 | Data::Perl::Stream::Array->new(array => [ @{$self->_members} ]) | |
17 | } | |
18 | ||
19 | __PACKAGE__->meta->make_immutable; | |
20 | ||
21 | 1; |