3 package Moose::Util::TypeConstraints::OptimizedConstraints;
8 use Scalar::Util qw(blessed looks_like_number);
10 sub Value { defined($_[0]) && !ref($_[0]) }
12 sub Ref { ref($_[0]) }
14 sub Str { defined($_[0]) && !ref($_[0]) }
16 sub Num { !ref($_[0]) && looks_like_number($_[0]) }
18 sub Int { defined($_[0]) && !ref($_[0]) && $_[0] =~ /^-?[0-9]+$/ }
20 sub ScalarRef { ref($_[0]) eq 'SCALAR' }
21 sub ArrayRef { ref($_[0]) eq 'ARRAY' }
22 sub HashRef { ref($_[0]) eq 'HASH' }
23 sub CodeRef { ref($_[0]) eq 'CODE' }
24 sub RegexpRef { ref($_[0]) eq 'Regexp' }
25 sub GlobRef { ref($_[0]) eq 'GLOB' }
27 sub FileHandle { ref($_[0]) eq 'GLOB' && Scalar::Util::openhandle($_[0]) }
29 sub Object { blessed($_[0]) && blessed($_[0]) ne 'Regexp' }
31 sub Role { blessed($_[0]) && $_[0]->can('does') }
42 Moose::Util::TypeConstraints::OptimizedConstraints - Optimized constraint
43 bodies for various moose types
49 This file contains optimized versions of Moose type constraints.