@@ -30,7 +30,7 @@ pub struct InPredicate<T>
30
30
where
31
31
T : PartialEq + fmt:: Debug ,
32
32
{
33
- inner : Vec < T > ,
33
+ inner : reflection :: DebugAdapter < Vec < T > > ,
34
34
}
35
35
36
36
impl < T > InPredicate < T >
61
61
/// assert_eq!(true, predicate_fn.eval("c"));
62
62
/// ```
63
63
pub fn sort ( self ) -> OrdInPredicate < T > {
64
- let mut items = self . inner ;
64
+ let mut items = self . inner . debug ;
65
65
items. sort ( ) ;
66
- OrdInPredicate { inner : items }
66
+ OrdInPredicate {
67
+ inner : reflection:: DebugAdapter :: new ( items) ,
68
+ }
67
69
}
68
70
}
69
71
72
74
T : PartialEq + fmt:: Debug ,
73
75
{
74
76
fn eval ( & self , variable : & T ) -> bool {
75
- self . inner . contains ( variable)
77
+ self . inner . debug . contains ( variable)
76
78
}
77
79
}
78
80
@@ -81,22 +83,26 @@ where
81
83
T : PartialEq + fmt:: Debug + ?Sized ,
82
84
{
83
85
fn eval ( & self , variable : & T ) -> bool {
84
- self . inner . contains ( & variable)
86
+ self . inner . debug . contains ( & variable)
85
87
}
86
88
}
87
89
88
90
impl < T > reflection:: PredicateReflection for InPredicate < T >
89
91
where
90
92
T : PartialEq + fmt:: Debug ,
91
93
{
94
+ fn parameters < ' a > ( & ' a self ) -> Box < Iterator < Item = reflection:: Parameter < ' a > > + ' a > {
95
+ let params = vec ! [ reflection:: Parameter :: new( "values" , & self . inner) ] ;
96
+ Box :: new ( params. into_iter ( ) )
97
+ }
92
98
}
93
99
94
100
impl < T > fmt:: Display for InPredicate < T >
95
101
where
96
102
T : PartialEq + fmt:: Debug ,
97
103
{
98
104
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
99
- write ! ( f, "var in {:?}" , self . inner )
105
+ write ! ( f, "var in values" )
100
106
}
101
107
}
102
108
@@ -135,7 +141,7 @@ where
135
141
I : IntoIterator < Item = T > ,
136
142
{
137
143
InPredicate {
138
- inner : Vec :: from_iter ( iter) ,
144
+ inner : reflection :: DebugAdapter :: new ( Vec :: from_iter ( iter) ) ,
139
145
}
140
146
}
141
147
@@ -153,15 +159,15 @@ pub struct OrdInPredicate<T>
153
159
where
154
160
T : Ord + fmt:: Debug ,
155
161
{
156
- inner : Vec < T > ,
162
+ inner : reflection :: DebugAdapter < Vec < T > > ,
157
163
}
158
164
159
165
impl < T > Predicate < T > for OrdInPredicate < T >
160
166
where
161
167
T : Ord + fmt:: Debug ,
162
168
{
163
169
fn eval ( & self , variable : & T ) -> bool {
164
- self . inner . binary_search ( variable) . is_ok ( )
170
+ self . inner . debug . binary_search ( variable) . is_ok ( )
165
171
}
166
172
}
167
173
@@ -170,22 +176,26 @@ where
170
176
T : Ord + fmt:: Debug + ?Sized ,
171
177
{
172
178
fn eval ( & self , variable : & T ) -> bool {
173
- self . inner . binary_search ( & variable) . is_ok ( )
179
+ self . inner . debug . binary_search ( & variable) . is_ok ( )
174
180
}
175
181
}
176
182
177
183
impl < T > reflection:: PredicateReflection for OrdInPredicate < T >
178
184
where
179
185
T : Ord + fmt:: Debug ,
180
186
{
187
+ fn parameters < ' a > ( & ' a self ) -> Box < Iterator < Item = reflection:: Parameter < ' a > > + ' a > {
188
+ let params = vec ! [ reflection:: Parameter :: new( "values" , & self . inner) ] ;
189
+ Box :: new ( params. into_iter ( ) )
190
+ }
181
191
}
182
192
183
193
impl < T > fmt:: Display for OrdInPredicate < T >
184
194
where
185
195
T : Ord + fmt:: Debug ,
186
196
{
187
197
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
188
- write ! ( f, "var in {:?}" , self . inner )
198
+ write ! ( f, "var in values" )
189
199
}
190
200
}
191
201
@@ -203,15 +213,15 @@ pub struct HashableInPredicate<T>
203
213
where
204
214
T : Hash + Eq + fmt:: Debug ,
205
215
{
206
- inner : HashSet < T > ,
216
+ inner : reflection :: DebugAdapter < HashSet < T > > ,
207
217
}
208
218
209
219
impl < T > Predicate < T > for HashableInPredicate < T >
210
220
where
211
221
T : Hash + Eq + fmt:: Debug ,
212
222
{
213
223
fn eval ( & self , variable : & T ) -> bool {
214
- self . inner . contains ( variable)
224
+ self . inner . debug . contains ( variable)
215
225
}
216
226
}
217
227
@@ -220,22 +230,26 @@ where
220
230
T : Hash + Eq + fmt:: Debug + ?Sized ,
221
231
{
222
232
fn eval ( & self , variable : & T ) -> bool {
223
- self . inner . contains ( & variable)
233
+ self . inner . debug . contains ( & variable)
224
234
}
225
235
}
226
236
227
237
impl < T > reflection:: PredicateReflection for HashableInPredicate < T >
228
238
where
229
239
T : Hash + Eq + fmt:: Debug ,
230
240
{
241
+ fn parameters < ' a > ( & ' a self ) -> Box < Iterator < Item = reflection:: Parameter < ' a > > + ' a > {
242
+ let params = vec ! [ reflection:: Parameter :: new( "values" , & self . inner) ] ;
243
+ Box :: new ( params. into_iter ( ) )
244
+ }
231
245
}
232
246
233
247
impl < T > fmt:: Display for HashableInPredicate < T >
234
248
where
235
249
T : Hash + Eq + fmt:: Debug ,
236
250
{
237
251
fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
238
- write ! ( f, "var in {:?}" , self . inner )
252
+ write ! ( f, "var in values" )
239
253
}
240
254
}
241
255
@@ -268,6 +282,6 @@ where
268
282
I : IntoIterator < Item = T > ,
269
283
{
270
284
HashableInPredicate {
271
- inner : HashSet :: from_iter ( iter) ,
285
+ inner : reflection :: DebugAdapter :: new ( HashSet :: from_iter ( iter) ) ,
272
286
}
273
287
}
0 commit comments