our $VERSION = '0.01';
-use LaTeX::TikZ::Tools;
-
use Any::Moose;
+use Any::Moose 'Util::TypeConstraints'
+ => [ qw/subtype as where find_type_constraint/ ];
with qw(
LaTeX::TikZ::Set::Op
LaTeX::TikZ::Set::Mutable
);
+subtype 'LaTeX::TikZ::Set::Path::Elements'
+ => as 'Object'
+ => where { $_->does('LaTeX::TikZ::Set::Op') };
+
has '_ops' => (
is => 'ro',
- isa => 'Maybe[ArrayRef[LaTeX::TikZ::Set::Op]]',
+ isa => 'Maybe[ArrayRef[LaTeX::TikZ::Set::Path::Elements]]',
init_arg => 'ops',
default => sub { [ ] },
);
sub ops { @{$_[0]->_ops} }
-my $ltso_tc = LaTeX::TikZ::Tools::type_constraint('LaTeX::TikZ::Set::Op');
+my $ltspe_tc = find_type_constraint('LaTeX::TikZ::Set::Path::Elements');
sub add {
my $set = shift;
- $ltso_tc->check($_) for @_;
+ $ltspe_tc->assert_valid($_) for @_;
- push @{$_[0]->_ops}, @_;
+ push @{$set->_ops}, @_;
$set;
}