| Server IP : 127.0.0.1 / Your IP : 216.73.216.48 Web Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 System : Windows NT DESKTOP-3H4FHQJ 10.0 build 19045 (Windows 10) AMD64 User : win 10 ( 0) PHP Version : 8.2.12 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : D:/xampp/perl/vendor/lib/Parse/Method/Signatures/ |
Upload File : |
use strict;
use warnings;
package Parse::Method::Signatures::Types;
use Moose::Util::TypeConstraints;
use MooseX::Types::Moose qw/Str ArrayRef/;
use namespace::clean;
use MooseX::Types -declare => [qw/
VariableName
TypeConstraint
Param
ParamCollection
PositionalParam
NamedParam
UnpackedParam
/];
subtype VariableName,
as Str,
where { /^[\$@%](?:[a-z_][a-z_\d]*)?$/i },
message { 'not a valid variable name' };
subtype TypeConstraint,
as 'Moose::Meta::TypeConstraint';
class_type Param, { class => 'Parse::Method::Signatures::Param' };
class_type ParamCollection, { class => 'Parse::Method::Signatures::ParamCollection' };
coerce ParamCollection,
from ArrayRef,
via { Parse::Method::Signatures::ParamCollection->new(params => $_) };
role_type PositionalParam, { role => 'Parse::Method::Signatures::Param::Positional' };
role_type NamedParam, { role => 'Parse::Method::Signatures::Param::Named' };
role_type UnpackedParam, { role => 'Parse::Method::Signatures::Param::Unpacked' };
1;