NAME
Type::API::Constraint - a rule that a value can be checked against, to determine whether it passes or fails
INTERFACE
Implementations of this interface are objects and MUST provide the following methods:
$constraint->check($value)
-
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.)
$constraint->get_message($value)
-
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
Implementations
The following CPAN classes are known to implement Type::API::Constraint:
Moose::Meta::TypeConstraint (and its subclasses)
Specio::Constraint::Simple (and several other classes in the Specio distribution)
Type::Tiny (and its subclasses)
Consumers
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.
AUTHOR
Toby Inkster <tobyink@cpan.org>.
COPYRIGHT AND LICENCE
This software is copyright (c) 2013 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
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.