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
-
Accepts strings and objects overloading stringification.
- HashLike
-
Accepts hashrefs and objects overloading hashification.
- ArrayLike
-
Accepts arrayrefs and objects overloading arrayfication.
- CodeLike
-
Accepts coderefs and objects overloading codification.
- TypeTiny
-
Accepts blessed the Type::Tiny manpage objects.
- to_TypeTiny($constraint)
-
Promotes (or ``demotes'' if you prefer) a Moose::Meta::TypeConstraint object
to a Type::Tiny object.
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.
the Type::Tiny manpage.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2013-2014, 2017-2019 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.
|