Types::TypeTiny(3pm)

Types::TypeTiny3pm

Type constraints used internally by type::tiny

Status

This module is covered by the Type-Tiny stability policy.

The BoolLike type is currently unstable.

Overview

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.

Types

•

StringLike

Accepts strings and objects overloading stringification.

•

BoolLike

Accepts undef, "", 0, 1; accepts any blessed object overloading "bool"; accepts any blessed object overloading "0+" to return 0 or 1. (Needs to actually call the overloaded operation to check that.) Also accepts any object that inherits from "boolean" or reports that as a role ("DOES").

Warning: an object which overloads "0+" without also turning on overload fallbacks may actually be useless as a practical boolean. But some common objects such as JSON::PP's booleans overload "0+" instead of overloading "bool" (thankfully with fallbacks enabled!) so we do need to support this.

The intention of this type is to be a version of Bool which also accepts common boolean objects such as JSON::PP::Boolean. It is currently unstable and the exact definition of the type may change to better implement that intended functionality.

•

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 Type::Tiny objects.

•

_ForeignTypeConstraint

Any reference which to_TypeTiny recognizes as something that can be coerced to a Type::Tiny object.

Yes, the underscore is included.

Coercion Functions

to_TypeTiny($constraint)

Promotes (or "demotes" if you prefer) a "foreign" type constraint to a Type::Tiny object. Can handle:

•

Moose types (including Moose::Meta::TypeConstraint objects and MooseX::Types::TypeDecorator objects).

•

Mouse types (including Mouse::Meta::TypeConstraint objects).

•

Validation::Class and Validation::Class::Simple objects.

•

Types built using Type::Library::Compiler.

•

Any object which provides "check" and "get_message" methods. (This includes Specio and Type::Nano types.) If the object provides "has_coercion" and coerce methods, these will be used to handle quoting. If the object provides "can_be_inlined" and "inline_check" methods, these will be used to handling inlining. If the object provides a "name" method, this will be assumed to return the type name.

•

Coderefs (but not blessed coderefs or objects overloading "&{}" unless they provide the methods described above!) 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.

•

Sub::Quote-enabled coderefs. These are handled the same way as above, but Type::Tiny will consult Sub::Quote to determine if they can be inlined.

Methods

These are implemented so that "Types::TypeTiny->meta->get_type($foo)" works, for rough compatibility with a real Type::Library type library.

"meta"
"type_names"
get_type($name)
has_type($name)
"coercion_names"
get_coercion($name)
has_coercion($name)

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.

Releases

7 releases since Debian 8 (Jessie); the text changed 6 times.

  1. 8
  2. 9
  3. 10
  4. 11
  5. 12
  6. 13
  7. Arch

Bugs

Please report any bugs to <https://github.com/tobyink/p5-type-tiny/issues>.

Author

Toby Inkster <[email protected]>.

From perl-type-tiny 2.010001-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.