Add built local::lib
[catagits/Gitalist.git] / local-lib5 / man / man3 / MooseX::Meta::TypeConstraint::Structured.3pm
CommitLineData
3fea05b9 1.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.10)
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sp \" Vertical space (when we can't use .PP)
6.if t .sp .5v
7.if n .sp
8..
9.de Vb \" Begin verbatim text
10.ft CW
11.nf
12.ne \\$1
13..
14.de Ve \" End verbatim text
15.ft R
16.fi
17..
18.\" Set up some character translations and predefined strings. \*(-- will
19.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20.\" double quote, and \*(R" will give a right double quote. \*(C+ will
21.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23.\" nothing in troff, for use with C<>.
24.tr \(*W-
25.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26.ie n \{\
27. ds -- \(*W-
28. ds PI pi
29. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31. ds L" ""
32. ds R" ""
33. ds C` ""
34. ds C' ""
35'br\}
36.el\{\
37. ds -- \|\(em\|
38. ds PI \(*p
39. ds L" ``
40. ds R" ''
41'br\}
42.\"
43.\" Escape single quotes in literal strings from groff's Unicode transform.
44.ie \n(.g .ds Aq \(aq
45.el .ds Aq '
46.\"
47.\" If the F register is turned on, we'll generate index entries on stderr for
48.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49.\" entries marked with X<> in POD. Of course, you'll have to process the
50.\" output yourself in some meaningful fashion.
51.ie \nF \{\
52. de IX
53. tm Index:\\$1\t\\n%\t"\\$2"
54..
55. nr % 0
56. rr F
57.\}
58.el \{\
59. de IX
60..
61.\}
62.\"
63.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64.\" Fear. Run. Save yourself. No user-serviceable parts.
65. \" fudge factors for nroff and troff
66.if n \{\
67. ds #H 0
68. ds #V .8m
69. ds #F .3m
70. ds #[ \f1
71. ds #] \fP
72.\}
73.if t \{\
74. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75. ds #V .6m
76. ds #F 0
77. ds #[ \&
78. ds #] \&
79.\}
80. \" simple accents for nroff and troff
81.if n \{\
82. ds ' \&
83. ds ` \&
84. ds ^ \&
85. ds , \&
86. ds ~ ~
87. ds /
88.\}
89.if t \{\
90. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96.\}
97. \" troff and (daisy-wheel) nroff accents
98.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105.ds ae a\h'-(\w'a'u*4/10)'e
106.ds Ae A\h'-(\w'A'u*4/10)'E
107. \" corrections for vroff
108.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110. \" for low resolution devices (crt and lpr)
111.if \n(.H>23 .if \n(.V>19 \
112\{\
113. ds : e
114. ds 8 ss
115. ds o a
116. ds d- d\h'-1'\(ga
117. ds D- D\h'-1'\(hy
118. ds th \o'bp'
119. ds Th \o'LP'
120. ds ae ae
121. ds Ae AE
122.\}
123.rm #[ #] #H #V #F C
124.\" ========================================================================
125.\"
126.IX Title "MooseX::Meta::TypeConstraint::Structured 3"
127.TH MooseX::Meta::TypeConstraint::Structured 3 "2010-03-26" "perl v5.8.8" "User Contributed Perl Documentation"
128.\" For nroff, turn off justification. Always turn off hyphenation; it makes
129.\" way too many mistakes in technical documents.
130.if n .ad l
131.nh
132.SH "NAME"
133MooseX::Meta::TypeConstraint::Structured \- Structured type constraints.
134.SH "DESCRIPTION"
135.IX Header "DESCRIPTION"
136A structure is a set of Moose::Meta::TypeConstraint that are 'aggregated' in
137such a way as that they are all applied to an incoming list of arguments. The
138idea here is that a Type Constraint could be something like, \*(L"An Int followed by
139an Int and then a Str\*(R" and that this could be done so with a declaration like:
140.PP
141.Vb 1
142\& Tuple[Int,Int,Str]; ## Example syntax
143.Ve
144.PP
145So a structure is a list of Type constraints (the \*(L"Int,Int,Str\*(R" in the above
146example) which are intended to function together.
147.SH "ATTRIBUTES"
148.IX Header "ATTRIBUTES"
149This class defines the following attributes.
150.SS "type_constraints"
151.IX Subsection "type_constraints"
152A list of Moose::Meta::TypeConstraint objects.
153.SS "constraint_generator"
154.IX Subsection "constraint_generator"
155A subref or closure that contains the way we validate incoming values against
156a set of type constraints.
157.SH "METHODS"
158.IX Header "METHODS"
159This class defines the following methods.
160.SS "new"
161.IX Subsection "new"
162Initialization stuff.
163.SS "validate"
164.IX Subsection "validate"
165Messing with validate so that we can support niced error messages.
166.SS "generate_constraint_for ($type_constraints)"
167.IX Subsection "generate_constraint_for ($type_constraints)"
168Given some type constraints, use them to generate validation rules for an ref
169of values (to be passed at check time)
170.SS "parameterize (@type_constraints)"
171.IX Subsection "parameterize (@type_constraints)"
172Given a ref of type constraints, create a structured type.
173.SS "_\|_infer_constraint_generator"
174.IX Subsection "__infer_constraint_generator"
175This returns a \s-1CODEREF\s0 which generates a suitable constraint generator. Not
176user servicable, you'll never call this directly.
177.SS "compile_type_constraint"
178.IX Subsection "compile_type_constraint"
179hook into compile_type_constraint so we can set the correct validation rules.
180.SS "create_child_type"
181.IX Subsection "create_child_type"
182modifier to make sure we get the constraint_generator
183.SS "is_a_type_of"
184.IX Subsection "is_a_type_of"
185.SS "is_subtype_of"
186.IX Subsection "is_subtype_of"
187.SS "equals"
188.IX Subsection "equals"
189Override the base class behavior.
190.SS "type_constraints_equals"
191.IX Subsection "type_constraints_equals"
192Checks to see if the internal type constraints are equal.
193.SS "get_message"
194.IX Subsection "get_message"
195Give you a better peek into what's causing the error. For now we stringify the
196incoming deep value with Devel::PartialDump and pass that on to either your
197custom error message or the default one. In the future we'll try to provide a
198more complete stack trace of the actual offending elements
199.SH "SEE ALSO"
200.IX Header "SEE ALSO"
201The following modules or resources may be of interest.
202.PP
203Moose, Moose::Meta::TypeConstraint
204.SH "AUTHOR"
205.IX Header "AUTHOR"
206John Napiorkowski, \f(CW\*(C`<jjnapiork@cpan.org>\*(C'\fR
207.SH "COPYRIGHT & LICENSE"
208.IX Header "COPYRIGHT & LICENSE"
209This program is free software; you can redistribute it and/or modify
210it under the same terms as Perl itself.