# NAME

Data::Object::Library - Data::Object Type Library for Perl 5

# VERSION

version 0.03

# SYNOPSIS

    use Data::Object::Library;

# DESCRIPTION

Data::Object::Library is a [Type::Tiny](https://metacpan.org/pod/Type::Tiny) library that extends the
[Types::Standard](https://metacpan.org/pod/Types::Standard), [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric), and [Types::Common::String](https://metacpan.org/pod/Types::Common::String)
libraries and adds additional type constraints and coercions which validate and
transform [Data::Object](https://metacpan.org/pod/Data::Object) data type objects.

## TYPES

This following is a complete list of type constraints provided by this library.

- `Any`

    The Any type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `AnyObj`

    The AnyObj type constraint is provided by this library and accepts any object
    that is, or is derived from, a [Data::Object::Universal](https://metacpan.org/pod/Data::Object::Universal).

- `AnyObject`

    The AnyObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Universal](https://metacpan.org/pod/Data::Object::Universal).

- `ArrayObj`

    The ArrayObj type constraint is provided by this library and accepts any object
    that is, or is derived from, a [Data::Object::Array](https://metacpan.org/pod/Data::Object::Array).

- `ArrayObject`

    The ArrayObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Array](https://metacpan.org/pod/Data::Object::Array).

- `ArrayRef`

    The ArrayRef type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `Bool`

    The Bool type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `ClassName`

    The ClassName type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `CodeObj`

    The CodeObj type constraint is provided by this library and accepts any object
    that is, or is derived from, a [Data::Object::Code](https://metacpan.org/pod/Data::Object::Code).

- `CodeObject`

    The CodeObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Code](https://metacpan.org/pod/Data::Object::Code).

- `CodeRef`

    The CodeRef type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `ConsumerOf`

    The ConsumerOf type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `Defined`

    The Defined type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `Dict`

    The Dict type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `Enum`

    The Enum type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `FileHandle`

    The FileHandle type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `FloatObj`

    The FloatObj type constraint is provided by this library and accepts any object
    that is, or is derived from, a [Data::Object::Float](https://metacpan.org/pod/Data::Object::Float).

- `FloatObject`

    The FloatObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Float](https://metacpan.org/pod/Data::Object::Float).

- `GlobRef`

    The GlobRef type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `HasMethods`

    The HasMethods type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `HashObj`

    The HashObj type constraint is provided by this library and accepts any object
    that is, or is derived from, a [Data::Object::Hash](https://metacpan.org/pod/Data::Object::Hash).

- `HashObject`

    The HashObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Hash](https://metacpan.org/pod/Data::Object::Hash).

- `HashRef`

    The HashRef type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `InstanceOf`

    The InstanceOf type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `Int`

    The Int type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `IntObj`

    The IntObj type constraint is provided by this library and accepts any object
    that is, or is derived from, a [Data::Object::Integer](https://metacpan.org/pod/Data::Object::Integer).

- `IntObject`

    The IntObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Integer](https://metacpan.org/pod/Data::Object::Integer).

- `IntegerObj`

    The IntegerObj type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Integer](https://metacpan.org/pod/Data::Object::Integer).

- `IntegerObject`

    The IntegerObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Integer](https://metacpan.org/pod/Data::Object::Integer).

- `Item`

    The Item type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `LaxNum`

    The LaxNum type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `LowerCaseSimpleStr`

    The LowerCaseSimpleStr type constraint is provided by the
    [Types::Common::String](https://metacpan.org/pod/Types::Common::String) library. Please see that documentation.

- `LowerCaseStr`

    The LowerCaseStr type constraint is provided by the [Types::Common::String](https://metacpan.org/pod/Types::Common::String)
    library. Please see that documentation.

- `Map`

    The Map type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `Maybe`

    The Maybe type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `NegativeInt`

    The NegativeInt type constraint is provided by the [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric)
    library. Please see that documentation.

- `NegativeNum`

    The NegativeNum type constraint is provided by the [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric)
    library. Please see that documentation.

- `NegativeOrZeroInt`

    The NegativeOrZeroInt type constraint is provided by the
    [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric) library. Please see that documentation.

- `NegativeOrZeroNum`

    The NegativeOrZeroNum type constraint is provided by the
    [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric) library. Please see that documentation.

- `NonEmptySimpleStr`

    The NonEmptySimpleStr type constraint is provided by the
    [Types::Common::String](https://metacpan.org/pod/Types::Common::String) library. Please see that documentation.

- `NonEmptyStr`

    The NonEmptyStr type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `Num`

    The Num type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `NumObj`

    The NumObj type constraint is provided by this library and accepts any object
    that is, or is derived from, a [Data::Object::Number](https://metacpan.org/pod/Data::Object::Number).

- `NumObject`

    The NumObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Number](https://metacpan.org/pod/Data::Object::Number).

- `NumberObj`

    The NumberObj type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Number](https://metacpan.org/pod/Data::Object::Number).

- `NumberObject`

    The NumberObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Number](https://metacpan.org/pod/Data::Object::Number).

- `NumericCode`

    The NumericCode type constraint is provided by the [Types::Common::String](https://metacpan.org/pod/Types::Common::String)
    library. Please see that documentation.

- `Object`

    The Object type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `OptList`

    The OptList type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `Optional`

    The Optional type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `Overload`

    The Overload type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `Password`

    The Password type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `PositiveInt`

    The PositiveInt type constraint is provided by the [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric)
    library. Please see that documentation.

- `PositiveNum`

    The PositiveNum type constraint is provided by the [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric)
    library. Please see that documentation.

- `PositiveOrZeroInt`

    The PositiveOrZeroInt type constraint is provided by the
    [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric) library. Please see that documentation.

- `PositiveOrZeroNum`

    The PositiveOrZeroNum type constraint is provided by the
    [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric) library. Please see that documentation.

- `Ref`

    The Ref type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `RegexpObj`

    The RegexpObj type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Regexp](https://metacpan.org/pod/Data::Object::Regexp).

- `RegexpObject`

    The RegexpObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Regexp](https://metacpan.org/pod/Data::Object::Regexp).

- `RegexpRef`

    The RegexpRef type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `RoleName`

    The RoleName type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `ScalarObj`

    The ScalarObj type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Scalar](https://metacpan.org/pod/Data::Object::Scalar).

- `ScalarObject`

    The ScalarObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Scalar](https://metacpan.org/pod/Data::Object::Scalar).

- `ScalarRef`

    The ScalarRef type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `SimpleStr`

    The SimpleStr type constraint is provided by the [Types::Common::String](https://metacpan.org/pod/Types::Common::String)
    library. Please see that documentation.

- `SingleDigit`

    The SingleDigit type constraint is provided by the [Types::Common::Numeric](https://metacpan.org/pod/Types::Common::Numeric)
    library. Please see that documentation.

- `Str`

    The Str type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `StrMatch`

    The StrMatch type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `StrObj`

    The StrObj type constraint is provided by this library and accepts any object
    that is, or is derived from, a [Data::Object::String](https://metacpan.org/pod/Data::Object::String).

- `StrObject`

    The StrObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::String](https://metacpan.org/pod/Data::Object::String).

- `StrictNum`

    The StrictNum type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library.
    Please see that documentation.

- `StringObj`

    The StringObj type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::String](https://metacpan.org/pod/Data::Object::String).

- `StringObject`

    The StringObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::String](https://metacpan.org/pod/Data::Object::String).

- `StrongPassword`

    The StrongPassword type constraint is provided by the [Types::Common::String](https://metacpan.org/pod/Types::Common::String)
    library. Please see that documentation.

- `Tied`

    The Tied type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `Tuple`

    The Tuple type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `Undef`

    The Undef type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

- `UndefObj`

    The UndefObj type constraint is provided by this library and accepts any object
    that is, or is derived from, a [Data::Object::Undef](https://metacpan.org/pod/Data::Object::Undef).

- `UndefObject`

    The UndefObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Undef](https://metacpan.org/pod/Data::Object::Undef).

- `UniversalObj`

    The UniversalObj type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Universal](https://metacpan.org/pod/Data::Object::Universal).

- `UniversalObject`

    The UniversalObject type constraint is provided by this library and accepts any
    object that is, or is derived from, a [Data::Object::Universal](https://metacpan.org/pod/Data::Object::Universal).

- `UpperCaseSimpleStr`

    The UpperCaseSimpleStr type constraint is provided by the
    [Types::Common::String](https://metacpan.org/pod/Types::Common::String) library. Please see that documentation.

- `UpperCaseStr`

    The UpperCaseStr type constraint is provided by the [Types::Common::String](https://metacpan.org/pod/Types::Common::String)
    library. Please see that documentation.

- `Value`

    The Value type constraint is provided by the [Types::Standard](https://metacpan.org/pod/Types::Standard) library. Please
    see that documentation.

# AUTHOR

Al Newkirk <anewkirk@ana.io>

# COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Al Newkirk.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
