Commit | Line | Data |
44babf1f |
1 | package Moose::Meta::Method::Accessor::Native::Hash::accessor; |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
10bd99ec |
6 | our $VERSION = '1.14'; |
44babf1f |
7 | $VERSION = eval $VERSION; |
8 | our $AUTHORITY = 'cpan:STEVAN'; |
9 | |
10 | use base qw( |
11 | Moose::Meta::Method::Accessor::Native::Hash::set |
12 | Moose::Meta::Method::Accessor::Native::Hash::get |
13 | ); |
14 | |
15 | sub _generate_method { |
16 | my $self = shift; |
17 | |
18 | my $inv = '$self'; |
19 | |
20 | my $code = 'sub {'; |
21 | $code .= "\n" . $self->_inline_pre_body(@_); |
22 | |
23 | $code .= "\n" . 'my $self = shift;'; |
24 | |
25 | $code .= "\n" . $self->_inline_curried_arguments; |
26 | |
27 | $code .= "\n" . $self->_inline_check_lazy($inv); |
28 | |
29 | my $slot_access = $self->_inline_get($inv); |
30 | |
31 | # get |
32 | $code .= "\n" . 'if ( @_ == 1 ) {'; |
33 | |
a1c11329 |
34 | $code .= "\n" . $self->_inline_check_var_is_valid_key('$_[0]'); |
44babf1f |
35 | |
36 | $code |
37 | .= "\n" |
38 | . 'return ' |
39 | . $self |
40 | ->Moose::Meta::Method::Accessor::Native::Hash::get::_return_value( |
41 | $slot_access) |
42 | . ';'; |
43 | |
44 | # set |
45 | $code .= "\n" . '} else {'; |
46 | |
d352fb4c |
47 | $code .= "\n" . $self->_writer_core( $inv, $slot_access ); |
44babf1f |
48 | |
a1c11329 |
49 | $code .= "\n" . $self->_inline_post_body(@_); |
44babf1f |
50 | |
51 | $code .= "\n}"; |
52 | $code .= "\n}"; |
53 | |
54 | return $code; |
55 | } |
56 | |
57 | # If we get one argument we won't check the argument count |
58 | sub _minimum_arguments {2} |
59 | sub _maximum_arguments {2} |
60 | |
61 | sub _adds_members {1} |
62 | |
44babf1f |
63 | sub _new_members {'$_[1]'} |
64 | |
65 | 1; |