1 package MooseX::Types::Common::Numeric;
6 our $VERSION = '0.001006';
8 use MooseX::Types -declare => [
9 qw(PositiveNum PositiveOrZeroNum
10 PositiveInt PositiveOrZeroInt
11 NegativeNum NegativeOrZeroNum
12 NegativeInt NegativeOrZeroInt
16 use MooseX::Types::Moose qw/Num Int/;
21 message { "Must be a positive number" },
22 ( $Moose::VERSION >= 2.0200
24 $_[0]->parent()->_inline_check( $_[1] ) . ' && '
30 subtype PositiveOrZeroNum,
33 message { "Must be a number greater than or equal to zero" },
34 ( $Moose::VERSION >= 2.0200
36 $_[0]->parent()->_inline_check( $_[1] ) . ' && '
45 message { "Must be a positive integer" },
46 ( $Moose::VERSION >= 2.0200
48 $_[0]->parent()->_inline_check( $_[1] ) . ' && '
54 subtype PositiveOrZeroInt,
57 message { "Must be an integer greater than or equal to zero" },
58 ( $Moose::VERSION >= 2.0200
60 $_[0]->parent()->_inline_check( $_[1] ) . ' && '
69 message { "Must be a negative number" },
70 ( $Moose::VERSION >= 2.0200
72 $_[0]->parent()->_inline_check( $_[1] ) . ' && '
78 subtype NegativeOrZeroNum,
81 message { "Must be a number less than or equal to zero" },
82 ( $Moose::VERSION >= 2.0200
84 $_[0]->parent()->_inline_check( $_[1] ) . ' && '
93 message { "Must be a negative integer" },
94 ( $Moose::VERSION >= 2.0200
96 $_[0]->parent()->_inline_check( $_[1] ) . ' && '
102 subtype NegativeOrZeroInt,
105 message { "Must be an integer less than or equal to zero" },
106 ( $Moose::VERSION >= 2.0200
108 $_[0]->parent()->_inline_check( $_[1] ) . ' && '
109 . qq{ ($_[1] <= 0) };
117 message { "Must be a single digit" },
118 ( $Moose::VERSION >= 2.0200
120 $_[0]->parent()->_inline_check( $_[1] ) . ' && '
121 . qq{ ($_[1] <= 9) };
132 MooseX::Types::Common::Numeric - Commonly used numeric types
136 use MooseX::Types::Common::Numeric qw/PositiveInt/;
137 has count => (is => 'rw', isa => PositiveInt);
145 A set of commonly-used numeric type constraints that do not ship with Moose by
152 =item * PositiveOrZeroNum
156 =item * PositiveOrZeroInt
160 =item * NegativeOrZeroNum
164 =item * NegativeOrZeroInt
174 =item * L<MooseX::Types::Common::String>
180 Please see:: L<MooseX::Types::Common>