@@ -2,6 +2,7 @@ export fold;
2
2
export fold_crate, fold_mod, fold_fn;
3
3
export default_seq_fold;
4
4
export default_seq_fold_crate;
5
+ export default_seq_fold_item;
5
6
export default_seq_fold_mod;
6
7
export default_seq_fold_fn;
7
8
export default_seq_fold_const;
@@ -14,6 +15,7 @@ export default_seq_fold_type;
14
15
enum fold< T > = t< T > ;
15
16
16
17
type fold_crate < T > = fn ~( fold : fold < T > , doc : doc:: cratedoc ) -> doc:: cratedoc ;
18
+ type fold_item < T > = fn ~( fold : fold < T > , doc : doc:: itemdoc ) -> doc:: itemdoc ;
17
19
type fold_mod < T > = fn ~( fold : fold < T > , doc : doc:: moddoc ) -> doc:: moddoc ;
18
20
type fold_fn < T > = fn ~( fold : fold < T > , doc : doc:: fndoc ) -> doc:: fndoc ;
19
21
type fold_const < T > = fn ~( fold : fold < T > , doc : doc:: constdoc ) -> doc:: constdoc ;
@@ -26,6 +28,7 @@ type fold_type<T> = fn~(fold: fold<T>, doc: doc::tydoc) -> doc::tydoc;
26
28
type t < T > = {
27
29
ctxt : T ,
28
30
fold_crate : fold_crate < T > ,
31
+ fold_item : fold_item < T > ,
29
32
fold_mod : fold_mod < T > ,
30
33
fold_fn : fold_fn < T > ,
31
34
fold_const : fold_const < T > ,
@@ -42,6 +45,7 @@ type t<T> = {
42
45
fn mk_fold < T : copy > (
43
46
ctxt : T ,
44
47
fold_crate : fold_crate < T > ,
48
+ fold_item : fold_item < T > ,
45
49
fold_mod : fold_mod < T > ,
46
50
fold_fn : fold_fn < T > ,
47
51
fold_const : fold_const < T > ,
@@ -54,6 +58,7 @@ fn mk_fold<T:copy>(
54
58
fold ( {
55
59
ctxt: ctxt,
56
60
fold_crate: fold_crate,
61
+ fold_item: fold_item,
57
62
fold_mod: fold_mod,
58
63
fold_fn: fold_fn,
59
64
fold_const: fold_const,
@@ -69,6 +74,7 @@ fn default_seq_fold<T:copy>(ctxt: T) -> fold<T> {
69
74
mk_fold (
70
75
ctxt,
71
76
{ |f, d| default_seq_fold_crate ( f, d) } ,
77
+ { |f, d| default_seq_fold_item ( f, d) } ,
72
78
{ |f, d| default_seq_fold_mod ( f, d) } ,
73
79
{ |f, d| default_seq_fold_fn ( f, d) } ,
74
80
{ |f, d| default_seq_fold_const ( f, d) } ,
@@ -89,11 +95,19 @@ fn default_seq_fold_crate<T>(
89
95
}
90
96
}
91
97
98
+ fn default_seq_fold_item < T > (
99
+ _fold : fold < T > ,
100
+ doc : doc:: itemdoc
101
+ ) -> doc:: itemdoc {
102
+ doc
103
+ }
104
+
92
105
fn default_seq_fold_mod < T > (
93
106
fold : fold < T > ,
94
107
doc : doc:: moddoc
95
108
) -> doc:: moddoc {
96
109
{
110
+ item: fold. fold_item ( fold, doc. item ) ,
97
111
items: ~vec:: map ( * doc. items ) { |itemtag|
98
112
alt itemtag {
99
113
doc : : modtag ( moddoc) {
@@ -127,52 +141,73 @@ fn default_seq_fold_mod<T>(
127
141
}
128
142
129
143
fn default_seq_fold_fn < T > (
130
- _fold : fold < T > ,
144
+ fold : fold < T > ,
131
145
doc : doc:: fndoc
132
146
) -> doc:: fndoc {
133
- doc
147
+ {
148
+ item: fold. fold_item ( fold, doc. item )
149
+ with doc
150
+ }
134
151
}
135
152
136
153
fn default_seq_fold_const < T > (
137
- _fold : fold < T > ,
154
+ fold : fold < T > ,
138
155
doc : doc:: constdoc
139
156
) -> doc:: constdoc {
140
- doc
157
+ {
158
+ item: fold. fold_item ( fold, doc. item )
159
+ with doc
160
+ }
141
161
}
142
162
143
163
fn default_seq_fold_enum < T > (
144
- _fold : fold < T > ,
164
+ fold : fold < T > ,
145
165
doc : doc:: enumdoc
146
166
) -> doc:: enumdoc {
147
- doc
167
+ {
168
+ item: fold. fold_item ( fold, doc. item )
169
+ with doc
170
+ }
148
171
}
149
172
150
173
fn default_seq_fold_res < T > (
151
- _fold : fold < T > ,
174
+ fold : fold < T > ,
152
175
doc : doc:: resdoc
153
176
) -> doc:: resdoc {
154
- doc
177
+ {
178
+ item: fold. fold_item ( fold, doc. item )
179
+ with doc
180
+ }
155
181
}
156
182
157
183
fn default_seq_fold_iface < T > (
158
- _fold : fold < T > ,
184
+ fold : fold < T > ,
159
185
doc : doc:: ifacedoc
160
186
) -> doc:: ifacedoc {
161
- doc
187
+ {
188
+ item: fold. fold_item ( fold, doc. item )
189
+ with doc
190
+ }
162
191
}
163
192
164
193
fn default_seq_fold_impl < T > (
165
- _fold : fold < T > ,
194
+ fold : fold < T > ,
166
195
doc : doc:: impldoc
167
196
) -> doc:: impldoc {
168
- doc
197
+ {
198
+ item: fold. fold_item ( fold, doc. item )
199
+ with doc
200
+ }
169
201
}
170
202
171
203
fn default_seq_fold_type < T > (
172
- _fold : fold < T > ,
204
+ fold : fold < T > ,
173
205
doc : doc:: tydoc
174
206
) -> doc:: tydoc {
175
- doc
207
+ {
208
+ item: fold. fold_item ( fold, doc. item )
209
+ with doc
210
+ }
176
211
}
177
212
178
213
#[ test]
0 commit comments