has '+action_builder' => (
handles => [ qw(
can_set_value action_for_set_value
- action_for_add_member action_for_remove_member
+ can_add_member action_for_add_member action_for_remove_member
) ]
);
-has members => (is => 'ro', required => 1);
+has members => (is => 'ro', required => 1, isa => HashRef[Value]);
+
+sub for_deparse {
+ [ dict => $_[0]->members ]
+}
sub index_list { sort keys %{$_[0]->members} }
+{ map +($_ => $m->{$_}->to_data), $self->index_list };
}
-sub but_set_identity_path {
- my ($self, $path) = @_;
- my $m = $self->members;
- $self->but(
- identity_path => $path,
- members => +{
- map +($_ => $m->{$_}->but_set_identity_path([ @$path, $_ ])),
- keys %$m
- },
- );
-}
-
1;