Provided by: libmoose-perl_2.1005-1_amd64 bug

NAME

       Moose::Meta::TypeConstraint - The Moose Type Constraint metaclass

VERSION

       version 2.1005

DESCRIPTION

       This class represents a single type constraint. Moose's built-in type constraints, as well
       as constraints you define, are all stored in a Moose::Meta::TypeConstraint::Registry
       object as objects of this class.

INHERITANCE

       "Moose::Meta::TypeConstraint" is a subclass of Class::MOP::Object.

METHODS

       Moose::Meta::TypeConstraint->new(%options)
           This creates a new type constraint based on the provided %options:

           ·       name

                   The constraint name. If a name is not provided, it will be set to "__ANON__".

           ·       parent

                   A "Moose::Meta::TypeConstraint" object which is the parent type for the type
                   being created. This is optional.

           ·       constraint

                   This is the subroutine reference that implements the actual constraint check.
                   This defaults to a subroutine which always returns true.

           ·       message

                   A subroutine reference which is used to generate an error message when the
                   constraint fails. This is optional.

           ·       coercion

                   A Moose::Meta::TypeCoercion object representing the coercions to the type.
                   This is optional.

           ·       inlined

                   A subroutine which returns a string suitable for inlining this type
                   constraint. It will be called as a method on the type constraint object, and
                   will receive a single additional parameter, a variable name to be tested
                   (usually "$_" or "$_[0]".

                   This is optional.

           ·       inline_environment

                   A hash reference of variables to close over. The keys are variables names, and
                   the values are references to the variables.

           ·       optimized

                   This option is deprecated.

                   This is a variant of the "constraint" parameter that is somehow optimized.
                   Typically, this means incorporating both the type's constraint and all of its
                   parents' constraints into a single subroutine reference.

       $constraint->equals($type_name_or_object)
           Returns true if the supplied name or type object is the same as the current type.

       $constraint->is_subtype_of($type_name_or_object)
           Returns true if the supplied name or type object is a parent of the current type.

       $constraint->is_a_type_of($type_name_or_object)
           Returns true if the given type is the same as the current type, or is a parent of the
           current type. This is a shortcut for checking "equals" and "is_subtype_of".

       $constraint->coerce($value)
           This will attempt to coerce the value to the type. If the type does not have any
           defined coercions this will throw an error.

           If no coercion can produce a value matching $constraint, the original value is
           returned.

       $constraint->assert_coerce($value)
           This method behaves just like "coerce", but if the result is not valid according to
           $constraint, an error is thrown.

       $constraint->check($value)
           Returns true if the given value passes the constraint for the type.

       $constraint->validate($value)
           This is similar to "check". However, if the type is valid then the method returns an
           explicit "undef". If the type is not valid, we call "$self->get_message($value)"
           internally to generate an error message.

       $constraint->assert_valid($value)
           Like "check" and "validate", this method checks whether $value is valid under the
           constraint.  If it is, it will return true.  If it is not, an exception will be thrown
           with the results of "$self->get_message($value)".

       $constraint->name
           Returns the type's name, as provided to the constructor.

       $constraint->parent
           Returns the type's parent, as provided to the constructor, if any.

       $constraint->has_parent
           Returns true if the type has a parent type.

       $constraint->parents
           Returns all of the types parents as an list of type constraint objects.

       $constraint->constraint
           Returns the type's constraint, as provided to the constructor.

       $constraint->get_message($value)
           This generates a method for the given value. If the type does not have an explicit
           message, we generate a default message.

       $constraint->has_message
           Returns true if the type has a message.

       $constraint->message
           Returns the type's message as a subroutine reference.

       $constraint->coercion
           Returns the type's Moose::Meta::TypeCoercion object, if one exists.

       $constraint->has_coercion
           Returns true if the type has a coercion.

       $constraint->can_be_inlined
           Returns true if this type constraint can be inlined. A type constraint which subtypes
           an inlinable constraint and does not add an additional constraint "inherits" its
           parent type's inlining.

       $constraint->hand_optimized_type_constraint
           This method is deprecated.

           Returns the type's hand optimized constraint, as provided to the constructor via the
           "optimized" option.

       $constraint->has_hand_optimized_type_constraint
           This method is deprecated.

           Returns true if the type has an optimized constraint.

       $constraint->create_child_type(%options)
           This returns a new type constraint of the same class using the provided %options. The
           "parent" option will be the current type.

           This method exists so that subclasses of this class can override this behavior and
           change how child types are created.

BUGS

       See "BUGS" in Moose for details on reporting bugs.

AUTHOR

       Moose is maintained by the Moose Cabal, along with the help of many contributors. See
       "CABAL" in Moose and "CONTRIBUTORS" in Moose for details.

COPYRIGHT AND LICENSE

       This software is copyright (c) 2013 by Infinity Interactive, Inc..

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.