Provided by: libtype-tiny-perl_1.002001-1_all bug

NAME

       Type::Tiny::Manual - an overview of Type::Tiny

SYNOPSIS

       Type::Tiny is a small class for writing type constraints, inspired by Moose's type
       constraint API. It has only one non-core dependency (and even that is simply a module that
       was previously distributed as part of Type::Tiny but has since been spun off), and can be
       used with Moose, Mouse and Moo (or none of the above).

       Type::Tiny is bundled with Type::Library a framework for organizing type constraints into
       collections.

       Also bundled is Types::Standard, a Moose-inspired library of useful type constraints.

       Type::Params is also provided, to allow very fast checking and coercion of function and
       method parameters.

SEE ALSO

       •   Libraries - how to build a type library with Type::Tiny, Type::Library and Type::Utils

       •   Coercions - adding coercions to type constraints

       •   Using with Moose - how to use Type::Tiny and Type::Library with Moose

       •   Using with Mouse - how to use Type::Tiny and Type::Library with Mouse

       •   Using with Moo - how to use Type::Tiny and Type::Library with Moo

       •   Using with Other OO Frameworks - how to use Type::Tiny and Type::Library with other OO
           frameworks

       •   Type::Tiny and friends don't need to be used within an OO framework. See
           FreeMind::Node for an example that does not.

       •   Processing arguments to subs - coerce and validate arguments to functions and methods.

       •   Other modules using Type::Tiny in interesting ways: Type::Tie, Test::Mocha,
           Scalar::Does, Set::Equivalence...

       •   Optimization - squeeze the most out of your CPU.

       •   Type::Tiny maintenance policies - the stability policy.

DEPENDENCIES

       Type::Tiny requires at least Perl 5.6.1, though certain Unicode-related features (e.g.
       non-ASCII type constraint names) may work better in newer versions of Perl.

       Type::Tiny requires Exporter::Tiny, a module that was previously bundled in this
       distribution, but has since been spun off as a separate distribution. Don't worry - it's
       quick and easy to install.

       At run-time, Type::Tiny also requires the following modules: B, B::Deparse, Carp,
       Data::Dumper, Scalar::Util, Text::Balanced, overload, strict and warnings. All of these
       come bundled with Perl itself. Prior to Perl 5.8, Scalar::Util and Text::Balanced do not
       come bundled with Perl and will need installing separately from the CPAN.

       Certain features require additional modules. Tying a variable to a type constraint (e.g.
       "tie my $count, Int") requires Type::Tie; stack traces on exceptions require
       Devel::StackTrace. The Reply::Plugin::TypeTiny plugin for Reply requires Reply
       (obviously). Devel::LexAlias may slightly increase the speed of some of Type::Tiny's
       compiled coderefs.

       Type::Tiny::XS is not required, but if available provides a speed boost for some type
       checks. (Setting the environment variable "PERL_TYPE_TINY_XS" to false, or setting
       "PERL_ONLY" to true will suppress the use of Type::Tiny::XS, even if it is available.)

       The test suite additionally requires Test::More, Test::Fatal and Test::Requires.
       Test::More comes bundled with Perl, but if you are using a version of Perl older than
       5.14, you will need to upgrade to at least Test::More version 0.96. Test::Requires and
       Test::Fatal (plus Try::Tiny which Test::Fatal depends on) are bundled with Type::Tiny in
       the "inc" directory, so you do not need to install them separately.

       If using Type::Tiny in conjunction with Moo, then at least Moo 1.000000 is recommended. If
       using Type::Tiny with Moose, then at least Moose 2.0000 is recommended. If using
       Type::Tiny with Mouse, then at least Mouse 1.00 is recommended. Type::Tiny is mostly
       untested against older versions of these packages.

TYPE::TINY VERSUS X

   Specio
       Type::Tiny is similar in aim to Specio. The major differences are

       •   Type::Tiny is "tiny" (Specio will eventually have fewer dependencies than it currently
           does, but is unlikely to ever have as few as Type::Tiny);

       •   Specio has a somewhat nicer API (better method names; less duplication), and its API
           is likely to improve further. Type::Tiny's aims at complete compatibility with current
           versions of Moose and Mouse, so there is a limit to how much I can deviate from the
           existing APIs of (Moose|Mouse)::Meta::TypeConstraint.

   MooseX::Types
       Type::Tiny libraries expose a similar interface to MooseX::Types libraries.  In most cases
       you should be able to rewrite a MooseX::Types library to use Type::Tiny pretty easily.

   MooX::Types::MooseLike
       Type::Tiny is faster and supports coercions.

   Scalar::Does
       Scalar::Does is somewhat of a precursor to Type::Tiny, but has now been rewritten to use
       Type::Tiny internally.

       It gives you a "does($value, $type)" function that is roughly equivalent to
       "$type->check($value)" except that $type may be one of a list of pre-defined strings
       (instead of a Type::Tiny type constraint); or may be a package name in which case it will
       be assumed to be a role and checked with "$value->DOES($type)".

BUGS

       Please report any bugs to <http://rt.cpan.org/Dist/Display.html?Queue=Type-Tiny>.

SUPPORT

       IRC: support is available through in the #moops channel on irc.perl.org
       <http://www.irc.perl.org/channels.html>.

AUTHOR

       Toby Inkster <tobyink@cpan.org>.

COPYRIGHT AND LICENCE

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