stop using excludes within moose, since it's no longer necessary
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Array / accessor.pm
CommitLineData
a7821be5 1package Moose::Meta::Method::Accessor::Native::Array::accessor;
2
3use strict;
4use warnings;
5
8b9641b8 6use Moose::Role;
7
00bbc132 8with 'Moose::Meta::Method::Accessor::Native::Array::set',
9 'Moose::Meta::Method::Accessor::Native::Array::get';
10
11sub _inline_process_arguments {
12 my $self = shift;
13 $self->Moose::Meta::Method::Accessor::Native::Array::get::_inline_process_arguments(@_);
14}
15
16sub _inline_check_arguments {
17 my $self = shift;
18 $self->Moose::Meta::Method::Accessor::Native::Array::get::_inline_check_arguments(@_);
19}
20
21sub _return_value {
22 my $self = shift;
23 $self->Moose::Meta::Method::Accessor::Native::Array::get::_return_value(@_);
24}
a7821be5 25
26sub _generate_method {
27 my $self = shift;
28
53a4677c 29 my $inv = '$self';
1e2c801e 30 my $slot_access = $self->_get_value($inv);
a7821be5 31
53a4677c 32 return (
33 'sub {',
53a4677c 34 'my ' . $inv . ' = shift;',
35 $self->_inline_curried_arguments,
a619fc2f 36 $self->_inline_check_lazy($inv, '$type_constraint', '$type_coercion', '$type_message'),
53a4677c 37 # get
38 'if (@_ == 1) {',
39 $self->_inline_check_var_is_valid_index('$_[0]'),
40 $self->Moose::Meta::Method::Accessor::Native::Array::get::_inline_return_value($slot_access),
41 '}',
42 # set
43 'else {',
1e2c801e 44 $self->_inline_writer_core($inv, $slot_access),
53a4677c 45 '}',
46 '}',
47 );
a7821be5 48}
49
1e2c801e 50sub _minimum_arguments { 1 }
51sub _maximum_arguments { 2 }
a7821be5 52
8b9641b8 53no Moose::Role;
a7821be5 54
551;