logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Type::Parser - parse type constraint strings

Author

       Toby Inkster <tobyink@cpan.org>.

Bugs

       Please report any bugs to <https://github.com/tobyink/p5-type-tiny/issues>.

Description

       Generally speaking, you probably don't want to be using this module directly.  Instead use the "lookup"
       method from Type::Registry which wraps it.

   Functions
       parse($string)
           Parse the type constraint string into something like an AST.

           If called in list context, also returns any "tail" found on the original string.

       "extract_type($string, $registry)"
           Compile a type constraint string into a Type::Tiny object.

           If called in list context, also returns any "tail" found on the original string.

       "eval_type($string, $registry)"
           Compile a type constraint string into a Type::Tiny object.

           Throws an error if the "tail" contains any non-whitespace character.

   Constants
       The following constants correspond to values returned by "$token->type".

       "TYPE"
       "QUOTELIKE"
       "STRING"
       "HEXNUM"
       "CLASS"
       "L_BRACKET"
       "R_BRACKET"
       "COMMA"
       "SLURPY"
       "UNION"
       "INTERSECT"
       "SLASH"
       "NOT"
       "L_PAREN"
       "R_PAREN"
       "MYSTERY"

Disclaimer Of Warranties

       THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT  ANY  EXPRESS  OR  IMPLIED  WARRANTIES,  INCLUDING,  WITHOUT
       LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.

perl v5.40.1                                       2025-05-06                                  Type::Parser(3pm)

Name

       Type::Parser - parse type constraint strings

See Also

       Type::Registry.

Status

       This module is covered by the Type-Tiny stability policy.

Synopsis

        use v5.10;
        use strict;
        use warnings;

        use Type::Parser qw( eval_type );
        use Type::Registry;

        my $reg = Type::Registry->for_me;
        $reg->add_types("Types::Standard");

        my $type = eval_type("Int | ArrayRef[Int]", $reg);

        $type->check(10);        # true
        $type->check([1..4]);    # true
        $type->check({foo=>1});  # false

See Also