c12c83c28de8e12ff89ce3598f5479c79fa8d263
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / String / inc.pm
1 package Moose::Meta::Method::Accessor::Native::String::inc;
2
3 use strict;
4 use warnings;
5
6 our $AUTHORITY = 'cpan:STEVAN';
7
8 use Moose::Role;
9
10 with 'Moose::Meta::Method::Accessor::Native::Writer' => {
11     -excludes => [
12         qw(
13             _maximum_arguments
14             _inline_optimized_set_new_value
15             )
16     ]
17     };
18
19 sub _maximum_arguments { 0 }
20
21 sub _potential_value {
22     my $self = shift;
23     my ($slot_access) = @_;
24
25     return '(do { '
26              . 'my $val = ' . $slot_access . '; '
27              . '$val++; '
28              . '$val; '
29          . '})';
30 }
31
32 sub _inline_optimized_set_new_value {
33     my $self = shift;
34     my ($inv, $new, $slot_access) = @_;
35
36     return $slot_access . '++;';
37 }
38
39 no Moose::Role;
40
41 1;