perldoc > Types::TypeTiny

NAME
    Types::TypeTiny - type constraints used internally by Type::Tiny

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

    The BoolLike type is currently unstable.

DESCRIPTION
    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.)

        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)

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

SEE ALSO
    Type::Tiny.

AUTHOR
    Toby Inkster <tobyink AT cpan.org>.

COPYRIGHT AND LICENCE
    This software is copyright (c) 2013-2014, 2017-2023 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.

Types::TypeTiny □✕
NAME STATUS DESCRIPTION
Types Coercion Functions to_TypeTiny($constraint) Methods get_type($name) has_type($name) get_coercion($name) has_coercion($name)
BUGS SEE ALSO AUTHOR COPYRIGHT AND LICENCE DISCLAIMER OF WARRANTIES

Generated by phpman v4.11.2-20-gbf7a1c7 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-10-03 03:25 @216.73.216.55
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 Transitional!Valid CSS!

^_top_^