our $VERSION = '0.01';
-use List::Util ();
+use Scalar::Util ();
+use List::Util ();
use LaTeX::TikZ::Mod::Formatted;
+use LaTeX::TikZ::Interface;
+
use Any::Moose;
use Any::Moose 'Util::TypeConstraints';
sub BUILD {
my ($self) = @_;
- $layers{$self->name} = $self;
+ my $name = $self->name;
+ $layers{$name} = $self;
+ Scalar::Util::weaken($layers{$name});
}
sub DEMOLISH {
)
}
-use LaTeX::TikZ::Interface layer => sub {
- shift;
+LaTeX::TikZ::Interface->register(
+ layer => sub {
+ shift;
- my $name = shift;
- __PACKAGE__->new(name => $name, @_);
-};
+ my $name = shift;
+ __PACKAGE__->new(name => $name, @_);
+ },
+);
__PACKAGE__->meta->make_immutable(
inline_constructor => 0,