1 package Moose::Meta::Method::Accessor::Native::Writer;
7 $VERSION = eval $VERSION;
8 our $AUTHORITY = 'cpan:STEVAN';
10 use base 'Moose::Meta::Method::Accessor::Native';
12 sub _generate_method {
17 my $slot_access = $self->_inline_get($inv);
20 $code .= "\n" . $self->_inline_pre_body(@_);
22 $code .= "\n" . 'my $self = shift;';
24 $code .= "\n" . $self->_inline_check_lazy($inv);
26 $code .= "\n" . $self->_inline_curried_arguments;
28 $code .= "\n" . $self->_inline_check_argument_count;
30 $code .= "\n" . $self->_inline_process_arguments;
32 $code .= "\n" . $self->_inline_check_arguments;
34 my $new_value = $self->_new_value($slot_access);
35 my $potential_value = $self->_potential_value($slot_access);
37 $code .= "\n" . $self->_inline_copy_value( \$potential_value );
40 . $self->_inline_tc_code(
45 $code .= "\n" . $self->_inline_get_old_value_for_trigger($inv);
46 $code .= "\n" . $self->_capture_old_value($slot_access);
49 . $self->_inline_set_new_value(
54 $code .= "\n" . $self->_inline_post_body(@_);
55 $code .= "\n" . $self->_inline_trigger( $inv, $slot_access, '@old' );
57 $code .= "\n" . $self->_return_value( $inv, '@old' );
64 sub _inline_process_arguments {q{}}
66 sub _inline_check_arguments {q{}}
68 sub _value_needs_copy {0}
70 sub _inline_tc_code {die}
72 sub _inline_check_coercion {die}
74 sub _inline_check_constraint {
77 return q{} unless $self->_constraint_must_be_checked;
79 return $self->SUPER::_inline_check_constraint( $_[0] );
82 sub _constraint_must_be_checked {die}
84 sub _capture_old_value { return q{} }
86 sub _inline_set_new_value {
89 return $self->SUPER::_inline_store(@_);
92 sub _return_value { return q{} }