1 package DX::Value::Dict;
3 use DX::Utils qw(string);
6 with 'DX::Role::StructuredValue';
8 has '+action_builder' => (
10 can_set_value action_for_set_value
11 action_for_add_member action_for_remove_member
15 has members => (is => 'ro', required => 1);
17 sub index_list { sort keys %{$_[0]->members} }
21 $self->members->{ref($at) ? $at->string_value : $at};
25 my ($self, $at, $value) = @_;
29 (ref($at) ? $at->string_value : $at) => $value
34 sub without_member_at {
36 my %members = %{$self->members};
38 $self->but(members => \%members);
43 my $m = $self->members;
44 +{ map +($_ => $m->{$_}->to_data), $self->index_list };