member_at starting to work
[scpubgit/DX.git] / lib / DX / Predicate / IsDict.pm
1 package DX::Predicate::IsDict;
2
3 use DX::Utils qw(step dict TYPE_OF);
4 use DX::Class;
5
6 with 'DX::Role::Predicate';
7
8 sub _possible_resolution_list {
9   my ($self, $arg) = @_;
10   if ($arg->is_set) {
11     die "is_dict called with non-dict"
12       unless $arg->isa('DX::Value::Dict');
13     return step(
14       actions => [],
15       depends_on => [ [ undef ,=> [ TYPE_OF ,=> $arg ] ] ]
16     );
17   }
18   my $set = $arg->action_for_set_value(dict());
19   return step(
20     actions => [ $set ],
21     depends_on => [ [ undef ,=> [ TYPE_OF ,=> $arg ] ] ]
22   );
23 }
24
25 1;