1 package Moose::Meta::Method::Accessor::Native::Array::natatime;
6 use List::MoreUtils ();
11 with 'Moose::Meta::Method::Accessor::Native::Reader';
13 sub _minimum_arguments { 1 }
15 sub _maximum_arguments { 2 }
17 sub _inline_check_arguments {
21 'if (!defined($_[0]) || $_[0] !~ /^\d+$/) {',
22 $self->_inline_throw_error(
23 '"The n value passed to natatime must be an integer"',
26 'if (@_ == 2 && !Params::Util::_CODELIKE($_[1])) {',
27 $self->_inline_throw_error(
28 '"The second argument passed to natatime must be a code '
35 sub _inline_return_value {
37 my ($slot_access) = @_;
40 'my $iter = List::MoreUtils::natatime($_[0], @{ (' . $slot_access . ') });',
42 'while (my @vals = $iter->()) {',
52 # Not called, but needed to satisfy the Reader role