1 package MooseX::Meta::TypeConstraint::Structured::Structurable;
8 use base 'Moose::Meta::TypeConstraint';
9 use Moose::Util::TypeConstraints ();
11 __PACKAGE__->meta->add_attribute('structured_type' => (
12 accessor => 'structured_type',
13 predicate => 'has_structured_type',
16 sub parse_parameter_str {
17 my ($self, $type_str) = @_;
18 return $self->structured_type->parse_parameter_str($type_str);
22 my ($self, @contained_tcs) = @_;
23 my $tc_name = $self->name .'['. join(',', map {$_->name} @contained_tcs) .']';
25 return $self->structured_type->new(
27 parent => $self->parent,
28 package_defined_in => __PACKAGE__,
29 signature => \@contained_tcs,