NAME

Declare::Constraints::Simple::Library::Array - Array Constraints

SYNOPSIS

# accept a list of pairs
my $pairs_validation = IsArrayRef( HasArraySize(2,2) );

# integer => object pairs
my $pairs = And( OnEvenElements(IsInt), 
                 OnOddElements(IsObject) );

# a three element array
my $tri = And( HasArraySize(3,3),
               OnArrayElements(0, IsInt,
                               1, IsDefined,
                               2, IsClass) );

DESCRIPTION

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

CONSTRAINTS

HasArraySize([$min, [$max]])

With $min defaulting to 1. So a specification of

my $profile = HasArraySize;

checks for at least one value. To force an exact size of the array, specify the same values for both:

my $profile = HasArraySize(3, 3);

OnArrayElements($key => $constraint, $key => $constraint, ...)

Applies the the $constraints to the corresponding $keys if they are present. For required keys see HasArraySize.

OnEvenElements($constraint)

Runs the constraint on all even elements of an array. See also OnOddElements.

OnOddElements($constraint)

Runs the constraint on all odd elements of an array. See also OnEvenElements.

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.