Implementations of this interface are objects and MUST provide the following methods:


Checks that the value meets the constraint. Under normal operation should return true or false to indicate a pass or failure.

Exceptions should not be thrown when a value simply fails the constraint, but may be used for other exceptional conditions. (For example, if the check requires a database lookup to determine pass or failure, but the database is unavailable.)


Generates an message explaining that the value has failed the type constraint, and returns this messages as a string. This method does not need to check whether the value genuinely fails the constraint; it can assume that the check method has already been called.

Implementations MAY advertise that they support this interface by returning true for $constraint->DOES("Type::API::Constraint") .

See Also


The following CPAN classes are known to implement Type::API::Constraint:


Some tools can make use of objects implementing Type::API::Constraint:

Others, such as Moose and Mouse require type constraints that implement a superset of this functionality.