- SEE ALSO
- COPYRIGHT AND LICENSE
MooseX::Meta::TypeConstraint::Structured - Structured type constraints
A structure is a set of Moose::Meta::TypeConstraint that are 'aggregated' in such a way as that they are all applied to an incoming list of arguments. The idea here is that a Type Constraint could be something like, "An
Int followed by an
Int and then a
Str" and that this could be done so with a declaration like:
Tuple[Int,Int,Str]; ## Example syntax
So a structure is a list of type constraints (the
Int,Int,Str in the above example) which are intended to function together.
A list of Moose::Meta::TypeConstraint objects.
Messing with validate so that we can support nicer error messages.
Given some type constraints, use them to generate validation rules for an ref of values (to be passed at check time)
Given a ref of type constraints, create a structured type.
hook into compile_type_constraint so we can set the correct validation rules.
modifier to make sure we get the constraint_generator
Override the base class behavior.
Checks to see if the internal type constraints are equal.
Give you a better peek into what's causing the error. For now we stringify the incoming deep value with Devel::PartialDump and pass that on to either your custom error message or the default one. In the future we'll try to provide a more complete stack trace of the actual offending elements
A subref or closure that contains the way we validate incoming values against a set of type constraints.
This returns a CODEREF which generates a suitable constraint generator. Not user servicable, you'll never call this directly.
The following modules or resources may be of interest.
John Napiorkowski <email@example.com>
Florian Ragwitz <firstname.lastname@example.org>
יובל קוג'מן (Yuval Kogman) <email@example.com>
Tomas (t0m) Doran <firstname.lastname@example.org>
Robert Sedlacek <email@example.com>
COPYRIGHT AND LICENSE
This software is copyright (c) 2008 by John Napiorkowski.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.