{
package Foo;
use Mouse;
- use Mouse::TypeRegistry;
- subtype Baz => where { defined($_) && $_ eq 'Baz' };
+ use Mouse::Util::TypeConstraints;
+ type Baz => where { defined($_) && $_ eq 'Baz' };
coerce Baz => from 'ArrayRef', via { 'Baz' };
has 'bar' => ( is => 'rw', isa => 'Str | Baz | Undef', coerce => 1 );
}
{
package Bar;
use Mouse;
- use Mouse::TypeRegistry;
+ use Mouse::Util::TypeConstraints;
- subtype 'Type1' => where { defined($_) && $_ eq 'Name' };
+ type 'Type1' => where { defined($_) && $_ eq 'Name' };
coerce 'Type1', from 'Str', via { 'Names' };
- subtype 'Type2' => where { defined($_) && $_ eq 'Group' };
+ type 'Type2' => where { defined($_) && $_ eq 'Group' };
coerce 'Type2', from 'Str', via { 'Name' };
has 'foo' => ( is => 'rw', isa => 'Type1|Type2', coerce => 1 );
{
package Baz;
use Mouse;
- use Mouse::TypeRegistry;
+ use Mouse::Util::TypeConstraints;
- subtype 'Type3' => where { defined($_) && $_ eq 'Name' };
+ type 'Type3' => where { defined($_) && $_ eq 'Name' };
coerce 'Type3', from 'CodeRef', via { 'Name' };
has 'foo' => ( is => 'rw', isa => 'Type3|KLASS|Undef', coerce => 1 );