my $meta = __PACKAGE__->meta;
my $tc1 = $meta->find_attribute_by_name('from')->type_constraint;
my $tc2 = $meta->find_attribute_by_name('to')->type_constraint;
my $meta = __PACKAGE__->meta;
my $tc1 = $meta->find_attribute_by_name('from')->type_constraint;
my $tc2 = $meta->find_attribute_by_name('to')->type_constraint;
MSG
$args{from} = $tc1->coerce($args{from});
$meta->find_attribute_by_name($_)->type_constraint->assert_valid($args{$_})
MSG
$args{from} = $tc1->coerce($args{from});
$meta->find_attribute_by_name($_)->type_constraint->assert_valid($args{$_})
my $p = $args{from}->point;
$args{to} = LaTeX::TikZ::Point->new(
x => $p->x + $args{width},
my $p = $args{from}->point;
$args{to} = LaTeX::TikZ::Point->new(
x => $p->x + $args{width},
LaTeX::TikZ::Functor->default_rule(
(__PACKAGE__) => sub {
my ($functor, $set, @args) = @_;
LaTeX::TikZ::Functor->default_rule(
(__PACKAGE__) => sub {
my ($functor, $set, @args) = @_;