Beginning of dzilization
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Reader.pm
CommitLineData
5df54980 1package Moose::Meta::Method::Accessor::Native::Reader;
2
3use strict;
4use warnings;
5
5df54980 6our $AUTHORITY = 'cpan:STEVAN';
7
8b9641b8 8use Moose::Role;
9
10with 'Moose::Meta::Method::Accessor::Native';
11
12requires '_return_value';
5df54980 13
14sub _generate_method {
15 my $self = shift;
16
53a4677c 17 my $inv = '$self';
1e2c801e 18 my $slot_access = $self->_get_value($inv);
e7724627 19
53a4677c 20 return (
21 'sub {',
53a4677c 22 'my ' . $inv . ' = shift;',
23 $self->_inline_curried_arguments,
1e2c801e 24 $self->_inline_reader_core($inv, $slot_access, @_),
53a4677c 25 '}',
26 );
e7724627 27}
28
1e2c801e 29sub _inline_reader_core {
53a4677c 30 my $self = shift;
31 my ($inv, $slot_access, @extra) = @_;
32
33 return (
34 $self->_inline_check_argument_count,
35 $self->_inline_process_arguments($inv, $slot_access),
36 $self->_inline_check_arguments,
ec86bdff 37 $self->_inline_check_lazy($inv, '$type_constraint', '$type_constraint_obj'),
53a4677c 38 $self->_inline_return_value($slot_access),
39 );
5df54980 40}
41
53a4677c 42sub _inline_process_arguments { return }
e7724627 43
53a4677c 44sub _inline_check_arguments { return }
5df54980 45
8b9641b8 46no Moose::Role;
47
5df54980 481;