in reply to
Re^8: Class::InsideOut - yet another riff on inside out objects.
in thread Class::InsideOut - yet another riff on inside out objects.
Hmmm... this sort of stuff falls over the 80/20 sweet spot for me. I would probably add a hook so sub-classes can customise how accessors/mutators are created. That way you could have:
package Foo;
use base(Class::InsideOut::SetterGetter);
sub new { bless [], shift };
my %Foo : Field(rw);
package Bar;
use base(Class::InsideOut::Lvalue);
sub new { bless [], shift };
my %Bar : Field(rw);
package main;
my $foo = Foo->new;
my $bar = Bar->new;
$foo->set_foo(12);
print $foo->get_foo, "\n";
$bar->bar = 42;
print $bar->bar, "\n";