4 package Parse::Method::Signatures::Types;
6 use Moose::Util::TypeConstraints;
7 use MooseX::Types::Moose qw/Str ArrayRef/;
10 use MooseX::Types -declare => [qw/
22 where { /^[\$@%](?:[a-z_][a-z_\d]*)?$/i },
23 message { 'not a valid variable name' };
25 subtype TypeConstraint,
26 as 'Moose::Meta::TypeConstraint';
28 class_type Param, { class => 'Parse::Method::Signatures::Param' };
30 class_type ParamCollection, { class => 'Parse::Method::Signatures::ParamCollection' };
32 coerce ParamCollection,
34 via { Parse::Method::Signatures::ParamCollection->new(params => $_) };
36 role_type PositionalParam, { role => 'Parse::Method::Signatures::Param::Positional' };
37 role_type NamedParam, { role => 'Parse::Method::Signatures::Param::Named' };
38 role_type UnpackedParam, { role => 'Parse::Method::Signatures::Param::Unpacked' };