package MooseX::Types::Common::Numeric;
+# ABSTRACT: Commonly used numeric types
use strict;
use warnings;
-our $VERSION = '0.001001';
-
use MooseX::Types -declare => [
- qw(PositiveNum PositiveInt NegativeNum NegativeInt SingleDigit)
+ qw(PositiveNum PositiveOrZeroNum
+ PositiveInt PositiveOrZeroInt
+ NegativeNum NegativeOrZeroNum
+ NegativeInt NegativeOrZeroInt
+ SingleDigit)
];
use MooseX::Types::Moose qw/Num Int/;
subtype PositiveNum,
as Num,
- where { $_ >= 0 },
+ where { $_ > 0 },
message { "Must be a positive number" },
( $Moose::VERSION >= 2.0200
? inline_as {
$_[0]->parent()->_inline_check( $_[1] ) . ' && '
+ . qq{ ($_[1] > 0) };
+ }
+ : ()
+ );
+
+subtype PositiveOrZeroNum,
+ as Num,
+ where { $_ >= 0 },
+ message { "Must be a number greater than or equal to zero" },
+ ( $Moose::VERSION >= 2.0200
+ ? inline_as {
+ $_[0]->parent()->_inline_check( $_[1] ) . ' && '
. qq{ ($_[1] >= 0) };
}
: ()
subtype PositiveInt,
as Int,
- where { $_ >= 0 },
+ where { $_ > 0 },
message { "Must be a positive integer" },
( $Moose::VERSION >= 2.0200
? inline_as {
$_[0]->parent()->_inline_check( $_[1] ) . ' && '
+ . qq{ ($_[1] > 0) };
+ }
+ : ()
+ );
+
+subtype PositiveOrZeroInt,
+ as Int,
+ where { $_ >= 0 },
+ message { "Must be an integer greater than or equal to zero" },
+ ( $Moose::VERSION >= 2.0200
+ ? inline_as {
+ $_[0]->parent()->_inline_check( $_[1] ) . ' && '
. qq{ ($_[1] >= 0) };
}
: ()
subtype NegativeNum,
as Num,
- where { $_ <= 0 },
+ where { $_ < 0 },
message { "Must be a negative number" },
( $Moose::VERSION >= 2.0200
? inline_as {
$_[0]->parent()->_inline_check( $_[1] ) . ' && '
+ . qq{ ($_[1] < 0) };
+ }
+ : ()
+ );
+
+subtype NegativeOrZeroNum,
+ as Num,
+ where { $_ <= 0 },
+ message { "Must be a number less than or equal to zero" },
+ ( $Moose::VERSION >= 2.0200
+ ? inline_as {
+ $_[0]->parent()->_inline_check( $_[1] ) . ' && '
. qq{ ($_[1] <= 0) };
}
: ()
subtype NegativeInt,
as Int,
- where { $_ <= 0 },
+ where { $_ < 0 },
message { "Must be a negative integer" },
( $Moose::VERSION >= 2.0200
? inline_as {
$_[0]->parent()->_inline_check( $_[1] ) . ' && '
+ . qq{ ($_[1] < 0) };
+ }
+ : ()
+ );
+
+subtype NegativeOrZeroInt,
+ as Int,
+ where { $_ <= 0 },
+ message { "Must be an integer less than or equal to zero" },
+ ( $Moose::VERSION >= 2.0200
+ ? inline_as {
+ $_[0]->parent()->_inline_check( $_[1] ) . ' && '
. qq{ ($_[1] <= 0) };
}
: ()
1;
-__END__;
-
-=head1 NAME
+__END__
-MooseX::Types::Common::Numeric - Commonly used numeric types
+=pod
=head1 SYNOPSIS
=item * PositiveNum
+=item * PositiveOrZeroNum
+
=item * PositiveInt
+=item * PositiveOrZeroInt
+
=item * NegativeNum
-=item * Int
+=item * NegativeOrZeroNum
+
+=item * NegativeInt
+
+=item * NegativeOrZeroInt
=item * SingleDigit
=back
-=head1 AUTHORS
-
-Please see:: L<MooseX::Types::Common>
-
=cut