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.

perl v5.26.1                                       2017-09-14                            Type::Tiny::Manual(3pm)