NAME¶
MooseX::Meta::TypeConstraint::Structured - Structured type constraints.
VERSION¶
version 0.30
DESCRIPTION¶
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.
ATTRIBUTES¶
type_constraints¶
A list of Moose::Meta::TypeConstraint objects.
constraint_generator¶
METHODS¶
validate¶
Messing with validate so that we can support nicer error messages.
generate_constraint_for ($type_constraints)¶
Given some type constraints, use them to generate validation rules for an ref of
values (to be passed at check time)
parameterize (@type_constraints)¶
Given a ref of type constraints, create a structured type.
__infer_constraint_generator¶
compile_type_constraint¶
hook into compile_type_constraint so we can set the correct validation rules.
create_child_type¶
modifier to make sure we get the constraint_generator
is_a_type_of¶
is_subtype_of¶
equals¶
Override the base class behavior.
type_constraints_equals¶
Checks to see if the internal type constraints are equal.
get_message¶
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.
SEE ALSO¶
The following modules or resources may be of interest.
Moose, Moose::Meta::TypeConstraint
AUTHORS¶
- •
- John Napiorkowski <jjnapiork@cpan.org>
- •
- Florian Ragwitz <rafl@debian.org>
- •
- XXXX XXX'XX (Yuval Kogman) <nothingmuch@woobling.org>
- •
- Tomas (t0m) Doran <bobtfish@bobtfish.net>
- •
- Robert Sedlacek <rs@474.at>
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.