HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/xampp/perl/vendor/lib/Parse/Method/Signatures/Types.pm
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;