Types::TypeTiny - type constraints used internally by Type::Tiny |
Types::TypeTiny - type constraints used internally by Type::Tiny
This module is covered by the Type-Tiny stability policy.
Dogfooding.
This isn't a real Type::Library-based type library; that would involve too much circularity. But it exports some type constraints which, while designed for use within Type::Tiny, may be more generally useful.
StringLike
HashLike
ArrayLike
CodeLike
TypeTiny
to_TypeTiny($constraint)
Can also handle the Validation::Class manpage objects. Type constraints built from
Validation::Class objects deliberately ignore field filters when they
do constraint checking (and go to great lengths to do so); using filters for
coercion only. (The behaviour of coerce
if we don't do that is just too
weird!)
Can also handle any object providing check
and get_message
methods.
(This includes the Mouse::Meta::TypeConstraint manpage objects.) If the object also
provides has_coercion
and coerce
methods, these will be used too.
Can also handle coderefs (but not blessed coderefs or objects overloading
&{}
). Coderefs are expected to return true iff $_
passes the
constraint. If $_
fails the type constraint, they may either return
false, or die with a helpful error message.
These are implemented so that Types::TypeTiny->meta->get_type($foo)
works, for rough compatibility with a real the Type::Library manpage type library.
meta
type_names
get_type($name)
has_type($name)
coercion_names
get_coercion($name)
has_coercion($name)
Please report any bugs to http://rt.cpan.org/Dist/Display.html.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2013-2014 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.
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.
Types::TypeTiny - type constraints used internally by Type::Tiny |