The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package TypeTest::MooseX;

use Elastic::Doc;
use MooseX::Types::Moose qw(:all);
use MooseX::Types -declare => [ 'Bar', 'SubBar' ];

#===================================
has 'any_attr' => (
#===================================
    is  => 'ro',
    isa => Any,
);

#===================================
has 'item_attr' => (
#===================================
    is  => 'ro',
    isa => Item,
);

#===================================
has 'maybe_attr' => (
#===================================
    is  => 'ro',
    isa => Maybe,
);

#===================================
has 'maybe_str_attr' => (
#===================================
    is  => 'ro',
    isa => Maybe [Str],
);

#===================================
has 'maybe_bool_attr' => (
#===================================
    is  => 'ro',
    isa => Maybe [Bool],
);

#===================================
has 'maybe_coderef_attr' => (
#===================================
    is  => 'ro',
    isa => Maybe [CodeRef],
);

#===================================
has 'undef_attr' => (
#===================================
    is  => 'ro',
    isa => Undef,
);

#===================================
has 'defined_attr' => (
#===================================
    is  => 'ro',
    isa => Defined,
);

#===================================
has 'value_attr' => (
#===================================
    is  => 'ro',
    isa => Value,
);

#===================================
has 'bool_attr' => (
#===================================
    is  => 'ro',
    isa => Bool,
);

#===================================
has 'str_attr' => (
#===================================
    is  => 'ro',
    isa => Str,
);

#===================================
has 'enum_attr' => (
#===================================
    is  => 'ro',
    isa => enum( [ 'foo', 'bar' ] ),
);

#===================================
has 'num_attr' => (
#===================================
    is  => 'ro',
    isa => Num,
);

#===================================
has 'int_attr' => (
#===================================
    is  => 'ro',
    isa => Int,
);

#===================================
has 'ref_attr' => (
#===================================
    is  => 'ro',
    isa => Ref,
);

#===================================
has 'scalar_ref_attr' => (
#===================================
    is  => 'ro',
    isa => ScalarRef,
);

#===================================
has 'scalar_ref_str_attr' => (
#===================================
    is  => 'ro',
    isa => ScalarRef [Str],
);

#===================================
has 'array_ref_attr' => (
#===================================
    is  => 'ro',
    isa => ArrayRef,
);

#===================================
has 'array_ref_str_attr' => (
#===================================
    is  => 'ro',
    isa => ArrayRef [Str],
);

#===================================
has 'array_ref_coderef_attr' => (
#===================================
    is  => 'ro',
    isa => 'ArrayRef[CodeRef]',
);

#===================================
has 'hash_ref_attr' => (
#===================================
    is  => 'ro',
    isa => HashRef,
);

#===================================
has 'hash_ref_str_attr' => (
#===================================
    is  => 'ro',
    isa => HashRef [Str],
);

#===================================
has 'hash_ref_coderef_attr' => (
#===================================
    is  => 'ro',
    isa => HashRef [CodeRef],
);

#===================================
has 'code_ref_attr' => (
#===================================
    is  => 'ro',
    isa => CodeRef,
);

#===================================
has 'regexp_ref_attr' => (
#===================================
    is  => 'ro',
    isa => RegexpRef,
);

#===================================
has 'glob_ref_attr' => (
#===================================
    is  => 'ro',
    isa => GlobRef,
);

#===================================
has 'file_handle_attr' => (
#===================================
    is  => 'ro',
    isa => FileHandle,
);

#===================================
has 'union_attr' => (
#===================================
    is  => 'ro',
    isa => Str | ArrayRef
);

#===================================
has 'type_attr' => (
#===================================
    is  => 'ro',
    isa => Bar,
);

#===================================
has 'subtype_str_attr' => (
#===================================
    is  => 'ro',
    isa => subtype SubBar,
    as Str
);

no Elastic::Doc;

1;