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[`a] >
Accepts hashrefs and objects overloading hashification.
Since Types::TypeTiny 1.012, may be parameterized with another type
constraint like HashLike[Int] >.
-
ArrayLike[`a] >
Accepts arrayrefs and objects overloading arrayfication.
Since Types::TypeTiny 1.012, may be parameterized with another type
constraint like ArrayLike[Int] >.
-
CodeLike >
Accepts coderefs and objects overloading codification.
-
TypeTiny >
Accepts blessed the Type::Tiny manpage objects.
-
_ForeignTypeConstraint >
Any reference which to_TypeTiny recognizes as something that can be coerced
to a Type::Tiny object.
Yes, the underscore is included.
- 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
https://github.com/tobyink/p5-type-tiny/issues.
the Type::Tiny manpage.
Toby Inkster <tobyink@cpan.org>.
This software is copyright (c) 2013-2014, 2017-2021 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.
|