1 package Moose::Meta::Method::Accessor::Native::Array::natatime;
6 use List::MoreUtils ();
9 our $VERSION = '1.9900';
10 $VERSION = eval $VERSION;
11 our $AUTHORITY = 'cpan:STEVAN';
15 with 'Moose::Meta::Method::Accessor::Native::Reader' => {
20 _inline_check_arguments
26 sub _minimum_arguments { 1 }
28 sub _maximum_arguments { 2 }
30 sub _inline_check_arguments {
34 'if (!defined($_[0]) || $_[0] !~ /^\d+$/) {',
35 $self->_inline_throw_error(
36 '"The n value passed to natatime must be an integer"',
39 'if (@_ == 2 && !Params::Util::_CODELIKE($_[1])) {',
40 $self->_inline_throw_error(
41 '"The second argument passed to natatime must be a code '
48 sub _inline_return_value {
50 my ($slot_access) = @_;
53 'my $iter = List::MoreUtils::natatime($_[0], @{ (' . $slot_access . ') });',
55 'while (my @vals = $iter->()) {',
65 # Not called, but needed to satisfy the Reader role