Provided by: libdeclare-constraints-simple-perl_0.03-1.1_all bug

NAME

       Declare::Constraints::Simple::Library::Hash - Hash Constraints

SYNOPSIS

         my $constraint = And(

           # make sure all keys are present
           HasAllKeys( qw(foo bar) ),

           # constraints for the keys
           OnHashKeys( foo => IsInt, bar => HasLength )

         );

DESCRIPTION

       This module contains all constraints that can be applied to hash references.

   HasAllKeys(@keys)
       The value has to be a hashref, and contain all keys listed in @keys to pass this
       constraint.

       The stack or path part of "HasAllKeys" is "HasAllKeys[$key]" where $key is the missing
       key.

   OnHashKeys(key => $constraint, key => $constraint, ...)
       This allows you to pass a constraint for each specific key in a hash reference. If a
       specified key is not in the validated hash reference, the validation for this key is not
       done. To make a key a requirement, use HasAllKeys(@keys) above in combination with this,
       e.g. like:

         And( HasAllKeys( qw(foo bar baz) )
              OnHashKeys( foo => IsInt,
                          bar => Matches(qr/bar/),
                          baz => IsArrayRef( HasLength )));

       Also, as you might see, you don't have to check for "IsHashRef" validity here. The hash
       constraints are already doing that by themselves.

       The stack or path part of "OnHashKeys" looks like "OnHashKeys[$key]" where $key is the key
       of the failing value.

SEE ALSO

       Declare::Constraints::Simple, Declare::Constraints::Simple::Library

AUTHOR

       Robert 'phaylon' Sedlacek "<phaylon@dunkelheit.at>"

LICENSE AND COPYRIGHT

       This module is free software, you can redistribute it and/or modify it under the same
       terms as perl itself.

perl v5.32.0                                2021-Declare::Constraints::Simple::Library::Hash(3pm)