logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Declare::Constraints::Simple::Library::Referencial - Ref Constraints

Author

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

Constraints

IsRefType(@types)
       Valid if the value is a reference of a kind in @types.

   IsScalarRef($constraint)
       This is true if the value is a scalar reference. A possible constraint for the scalar references target
       value can be passed. E.g.

         my $test_integer_ref = IsScalarRef(IsInt);

   IsArrayRef($constraint)
       The value is valid if the value is an array reference. The contents of the array can be validated by
       passing another $constraint as argument.

       The stack or path part of "IsArrayRef" is "IsArrayRef[$index]" where $index is the index of the failing
       element.

   IsHashRef(-keys=>$constraint,-values=>$constraint)
       True if the value is a hash reference. It can also take two named parameters: "-keys" can pass a
       constraint to check the hashes keys, "-values" does the same for its values.

       The stack or path part of "IsHashRef" looks like "IsHashRef[$type $key]" where $type is either "val" or
       "key" depending on what was validated, and $key being the key that didn't pass validation.

   IsCodeRef()
       Code references have to be valid to pass this constraint.

   IsRegex()
       True if the value is a regular expression built with "qr". Note however, that a simple string that could
       be used like "/$rx/" will not pass this constraint. You can combine multiple constraints with
       And(@constraints) though.

Description

       This library contains those constraints that can test the validity of references and their types.

Name

       Declare::Constraints::Simple::Library::Referencial - Ref Constraints

See Also

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

Synopsis

         # scalar or array references
         my $scalar_or_array = IsRefType( qw(SCALAR ARRAY) );

         # scalar reference
         my $int_ref = IsScalarRef( IsInt );

         # accept mappings of ids to objects with "name" methods
         my $id_obj_map =
           IsHashRef( -keys   => IsInt,
                      -values => And( IsObject,
                                      HasMethods('name') ));

         # an integer list
         my $int_list = IsArrayRef( IsInt );

         # accept code references
         my $is_closure = IsCodeRef;

         # accept a regular expression
         my $is_regex = IsRegex;

See Also