# phpman > perldoc > Type::Tiny::Role

## NAME
    [Type::Tiny::Role](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny%3A%3ARole/markdown) - type constraints based on the "DOES" method

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

## DESCRIPTION
    Type constraints of the general form "{ $_->DOES("[Some::Role](https://www.chedong.com/phpMan.php/perldoc/Some%3A%3ARole/markdown)") }".

    This package inherits from [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown); see that for most documentation. Major differences are
    listed below:

### Attributes
    "role"
        The role for the constraint.

        Note that this package doesn't subscribe to any particular flavour of roles ([Moose::Role](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3ARole/markdown),
        [Mouse::Role](https://www.chedong.com/phpMan.php/perldoc/Mouse%3A%3ARole/markdown), [Moo::Role](https://www.chedong.com/phpMan.php/perldoc/Moo%3A%3ARole/markdown), [Role::Tiny](https://www.chedong.com/phpMan.php/perldoc/Role%3A%3ATiny/markdown), etc). It simply trusts the object's "DOES" method (see
        UNIVERSAL).

    "constraint"
        Unlike [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown), you *cannot* pass a constraint coderef to the constructor. Instead rely
        on the default.

    "inlined"
        Unlike [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown), you *cannot* pass an inlining coderef to the constructor. Instead rely on
        the default.

    "parent"
        Parent is always [Types::Standard::Object](https://www.chedong.com/phpMan.php/perldoc/Types%3A%3AStandard%3A%3AObject/markdown), and cannot be passed to the constructor.

### Methods
    "stringifies_to($constraint)"
        See [Type::Tiny::ConstrainedObject](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny%3A%3AConstrainedObject/markdown).

    "numifies_to($constraint)"
        See [Type::Tiny::ConstrainedObject](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny%3A%3AConstrainedObject/markdown).

    "with_attribute_values($attr1 => $constraint1, ...)"
        See [Type::Tiny::ConstrainedObject](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny%3A%3AConstrainedObject/markdown).

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

## SEE ALSO
    [Type::Tiny::Manual](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny%3A%3AManual/markdown).

    [Type::Tiny](https://www.chedong.com/phpMan.php/perldoc/Type%3A%3ATiny/markdown).

    [Moose::Meta::TypeConstraint::Role](https://www.chedong.com/phpMan.php/perldoc/Moose%3A%3AMeta%3A%3ATypeConstraint%3A%3ARole/markdown).

## AUTHOR
    Toby Inkster <<tobyink@cpan.org>>.

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

