Inline all Counter methods
[gitmo/Moose.git] / lib / Moose / Meta / Method / Accessor / Native / Counter / inc.pm
diff --git a/lib/Moose/Meta/Method/Accessor/Native/Counter/inc.pm b/lib/Moose/Meta/Method/Accessor/Native/Counter/inc.pm
new file mode 100644 (file)
index 0000000..d888db9
--- /dev/null
@@ -0,0 +1,27 @@
+package Moose::Meta::Method::Accessor::Native::Counter::inc;
+
+use strict;
+use warnings;
+
+our $VERSION = '1.13';
+$VERSION = eval $VERSION;
+our $AUTHORITY = 'cpan:STEVAN';
+
+use base 'Moose::Meta::Method::Accessor::Native::Writer';
+
+sub _minimum_arguments { 0 }
+sub _maximum_arguments { 1 }
+
+sub _potential_value {
+    my ( $self, $slot_access ) = @_;
+
+    return "$slot_access + ( defined \$_[0] ? \$_[0] : 1 );";
+}
+
+sub _inline_optimized_set_new_value {
+    my ( $self, $inv, $new, $slot_access ) = @_;
+
+    return "$slot_access += defined \$_[0] ? \$_[0] : 1;";
+}
+
+1;