@@ -13,16 +13,6 @@ pub(crate) trait MaybeResolve<In, Out> {
13
13
fn maybe_resolve ( self , context : In ) -> Out ;
14
14
}
15
15
16
- /// Trait to encapsulate behaviour where we need to resolve from a
17
- /// potentially context-dependent size or dimension into
18
- /// a context-independent size or dimension.
19
- ///
20
- /// Will return a default value if it unable to resolve.
21
- pub ( crate ) trait ResolveOrDefault < TContext , TOutput > {
22
- /// Resolve a dimension that might be dependent on a context, with a default fallback value
23
- fn resolve_or_default ( self , context : TContext ) -> TOutput ;
24
- }
25
-
26
16
/// Trait to encapsulate behaviour where we need to resolve from a
27
17
/// potentially context-dependent size or dimension into
28
18
/// a context-independent size or dimension.
@@ -87,44 +77,6 @@ impl<In, Out, T: MaybeResolve<In, Out>> MaybeResolve<Size<In>, Size<Out>> for Si
87
77
}
88
78
}
89
79
90
- impl ResolveOrDefault < Option < f32 > , f32 > for Dimension {
91
- /// Will return a default value of result is evaluated to `None`
92
- fn resolve_or_default ( self , context : Option < f32 > ) -> f32 {
93
- self . maybe_resolve ( context) . unwrap_or ( 0.0 )
94
- }
95
- }
96
-
97
- impl ResolveOrDefault < Size < Option < f32 > > , Size < f32 > > for Size < Dimension > {
98
- fn resolve_or_default ( self , context : Size < Option < f32 > > ) -> Size < f32 > {
99
- Size {
100
- width : self . width . resolve_or_default ( context. width ) ,
101
- height : self . height . resolve_or_default ( context. height ) ,
102
- }
103
- }
104
- }
105
-
106
- impl ResolveOrDefault < Size < Option < f32 > > , Rect < f32 > > for Rect < Dimension > {
107
- fn resolve_or_default ( self , context : Size < Option < f32 > > ) -> Rect < f32 > {
108
- Rect {
109
- left : self . left . resolve_or_default ( context. width ) ,
110
- right : self . right . resolve_or_default ( context. width ) ,
111
- top : self . top . resolve_or_default ( context. height ) ,
112
- bottom : self . bottom . resolve_or_default ( context. height ) ,
113
- }
114
- }
115
- }
116
-
117
- impl ResolveOrDefault < Option < f32 > , Rect < f32 > > for Rect < Dimension > {
118
- fn resolve_or_default ( self , context : Option < f32 > ) -> Rect < f32 > {
119
- Rect {
120
- left : self . left . resolve_or_default ( context) ,
121
- right : self . right . resolve_or_default ( context) ,
122
- top : self . top . resolve_or_default ( context) ,
123
- bottom : self . bottom . resolve_or_default ( context) ,
124
- }
125
- }
126
- }
127
-
128
80
impl ResolveOrZero < Option < f32 > , f32 > for LengthPercentage {
129
81
/// Will return a default value of result is evaluated to `None`
130
82
fn resolve_or_zero ( self , context : Option < f32 > ) -> f32 {
@@ -284,8 +236,8 @@ mod tests {
284
236
}
285
237
}
286
238
287
- mod resolve_or_default_dimension_to_option_f32 {
288
- use crate :: resolve:: ResolveOrDefault ;
239
+ mod resolve_or_zero_dimension_to_option_f32 {
240
+ use crate :: resolve:: ResolveOrZero ;
289
241
use crate :: style:: Dimension ;
290
242
use rstest:: rstest;
291
243
@@ -294,30 +246,30 @@ mod tests {
294
246
#[ case( Dimension :: Auto , Some ( 5.0 ) , 0.0 ) ]
295
247
#[ case( Dimension :: Auto , Some ( -5.0 ) , 0.0 ) ]
296
248
#[ case( Dimension :: Auto , Some ( 0.0 ) , 0.0 ) ]
297
- fn resolve_or_default_auto ( #[ case] input : Dimension , #[ case] context : Option < f32 > , #[ case] expected : f32 ) {
298
- assert_eq ! ( input. resolve_or_default ( context) , expected) ;
249
+ fn resolve_or_zero_auto ( #[ case] input : Dimension , #[ case] context : Option < f32 > , #[ case] expected : f32 ) {
250
+ assert_eq ! ( input. resolve_or_zero ( context) , expected) ;
299
251
}
300
252
#[ rstest]
301
253
#[ case( Dimension :: Points ( 5.0 ) , None , 5.0 ) ]
302
254
#[ case( Dimension :: Points ( 5.0 ) , Some ( 5.0 ) , 5.0 ) ]
303
255
#[ case( Dimension :: Points ( 5.0 ) , Some ( -5.0 ) , 5.0 ) ]
304
256
#[ case( Dimension :: Points ( 5.0 ) , Some ( 0.0 ) , 5.0 ) ]
305
- fn resolve_or_default_points ( #[ case] input : Dimension , #[ case] context : Option < f32 > , #[ case] expected : f32 ) {
306
- assert_eq ! ( input. resolve_or_default ( context) , expected) ;
257
+ fn resolve_or_zero_points ( #[ case] input : Dimension , #[ case] context : Option < f32 > , #[ case] expected : f32 ) {
258
+ assert_eq ! ( input. resolve_or_zero ( context) , expected) ;
307
259
}
308
260
#[ rstest]
309
261
#[ case( Dimension :: Percent ( 5.0 ) , None , 0.0 ) ]
310
262
#[ case( Dimension :: Percent ( 5.0 ) , Some ( 5.0 ) , 25.0 ) ]
311
263
#[ case( Dimension :: Percent ( 5.0 ) , Some ( -5.0 ) , -25.0 ) ]
312
264
#[ case( Dimension :: Percent ( 5.0 ) , Some ( 0.0 ) , 0.0 ) ]
313
- fn resolve_or_default_percent ( #[ case] input : Dimension , #[ case] context : Option < f32 > , #[ case] expected : f32 ) {
314
- assert_eq ! ( input. resolve_or_default ( context) , expected) ;
265
+ fn resolve_or_zero_percent ( #[ case] input : Dimension , #[ case] context : Option < f32 > , #[ case] expected : f32 ) {
266
+ assert_eq ! ( input. resolve_or_zero ( context) , expected) ;
315
267
}
316
268
}
317
269
318
- mod resolve_or_default_rect_dimension_to_rect {
270
+ mod resolve_or_zero_rect_dimension_to_rect {
319
271
use crate :: geometry:: { Rect , Size } ;
320
- use crate :: resolve:: ResolveOrDefault ;
272
+ use crate :: resolve:: ResolveOrZero ;
321
273
use crate :: style:: Dimension ;
322
274
use rstest:: rstest;
323
275
@@ -326,44 +278,44 @@ mod tests {
326
278
#[ case( Rect :: auto( ) , Size :: new( 5.0 , 5.0 ) , Rect :: zero( ) ) ]
327
279
#[ case( Rect :: auto( ) , Size :: new( -5.0 , -5.0 ) , Rect :: zero( ) ) ]
328
280
#[ case( Rect :: auto( ) , Size :: new( 0.0 , 0.0 ) , Rect :: zero( ) ) ]
329
- fn resolve_or_default_auto (
281
+ fn resolve_or_zero_auto (
330
282
#[ case] input : Rect < Dimension > ,
331
283
#[ case] context : Size < Option < f32 > > ,
332
284
#[ case] expected : Rect < f32 > ,
333
285
) {
334
- assert_eq ! ( input. resolve_or_default ( context) , expected) ;
286
+ assert_eq ! ( input. resolve_or_zero ( context) , expected) ;
335
287
}
336
288
337
289
#[ rstest]
338
290
#[ case( Rect :: from_points( 5.0 , 5.0 , 5.0 , 5.0 ) , Size :: NONE , Rect :: new( 5.0 , 5.0 , 5.0 , 5.0 ) ) ]
339
291
#[ case( Rect :: from_points( 5.0 , 5.0 , 5.0 , 5.0 ) , Size :: new( 5.0 , 5.0 ) , Rect :: new( 5.0 , 5.0 , 5.0 , 5.0 ) ) ]
340
292
#[ case( Rect :: from_points( 5.0 , 5.0 , 5.0 , 5.0 ) , Size :: new( -5.0 , -5.0 ) , Rect :: new( 5.0 , 5.0 , 5.0 , 5.0 ) ) ]
341
293
#[ case( Rect :: from_points( 5.0 , 5.0 , 5.0 , 5.0 ) , Size :: new( 0.0 , 0.0 ) , Rect :: new( 5.0 , 5.0 , 5.0 , 5.0 ) ) ]
342
- fn resolve_or_default_points (
294
+ fn resolve_or_zero_points (
343
295
#[ case] input : Rect < Dimension > ,
344
296
#[ case] context : Size < Option < f32 > > ,
345
297
#[ case] expected : Rect < f32 > ,
346
298
) {
347
- assert_eq ! ( input. resolve_or_default ( context) , expected) ;
299
+ assert_eq ! ( input. resolve_or_zero ( context) , expected) ;
348
300
}
349
301
350
302
#[ rstest]
351
303
#[ case( Rect :: from_percent( 5.0 , 5.0 , 5.0 , 5.0 ) , Size :: NONE , Rect :: zero( ) ) ]
352
304
#[ case( Rect :: from_percent( 5.0 , 5.0 , 5.0 , 5.0 ) , Size :: new( 5.0 , 5.0 ) , Rect :: new( 25.0 , 25.0 , 25.0 , 25.0 ) ) ]
353
305
#[ case( Rect :: from_percent( 5.0 , 5.0 , 5.0 , 5.0 ) , Size :: new( -5.0 , -5.0 ) , Rect :: new( -25.0 , -25.0 , -25.0 , -25.0 ) ) ]
354
306
#[ case( Rect :: from_percent( 5.0 , 5.0 , 5.0 , 5.0 ) , Size :: new( 0.0 , 0.0 ) , Rect :: zero( ) ) ]
355
- fn resolve_or_default_percent (
307
+ fn resolve_or_zero_percent (
356
308
#[ case] input : Rect < Dimension > ,
357
309
#[ case] context : Size < Option < f32 > > ,
358
310
#[ case] expected : Rect < f32 > ,
359
311
) {
360
- assert_eq ! ( input. resolve_or_default ( context) , expected) ;
312
+ assert_eq ! ( input. resolve_or_zero ( context) , expected) ;
361
313
}
362
314
}
363
315
364
- mod resolve_or_default_rect_dimension_to_rect_f32_via_option {
316
+ mod resolve_or_zero_rect_dimension_to_rect_f32_via_option {
365
317
use crate :: geometry:: Rect ;
366
- use crate :: resolve:: ResolveOrDefault ;
318
+ use crate :: resolve:: ResolveOrZero ;
367
319
use crate :: style:: Dimension ;
368
320
use rstest:: rstest;
369
321
@@ -372,38 +324,38 @@ mod tests {
372
324
#[ case( Rect :: auto( ) , Some ( 5.0 ) , Rect :: zero( ) ) ]
373
325
#[ case( Rect :: auto( ) , Some ( -5.0 ) , Rect :: zero( ) ) ]
374
326
#[ case( Rect :: auto( ) , Some ( 0.0 ) , Rect :: zero( ) ) ]
375
- fn resolve_or_default_auto (
327
+ fn resolve_or_zero_auto (
376
328
#[ case] input : Rect < Dimension > ,
377
329
#[ case] context : Option < f32 > ,
378
330
#[ case] expected : Rect < f32 > ,
379
331
) {
380
- assert_eq ! ( input. resolve_or_default ( context) , expected) ;
332
+ assert_eq ! ( input. resolve_or_zero ( context) , expected) ;
381
333
}
382
334
383
335
#[ rstest]
384
336
#[ case( Rect :: from_points( 5.0 , 5.0 , 5.0 , 5.0 ) , None , Rect :: new( 5.0 , 5.0 , 5.0 , 5.0 ) ) ]
385
337
#[ case( Rect :: from_points( 5.0 , 5.0 , 5.0 , 5.0 ) , Some ( 5.0 ) , Rect :: new( 5.0 , 5.0 , 5.0 , 5.0 ) ) ]
386
338
#[ case( Rect :: from_points( 5.0 , 5.0 , 5.0 , 5.0 ) , Some ( -5.0 ) , Rect :: new( 5.0 , 5.0 , 5.0 , 5.0 ) ) ]
387
339
#[ case( Rect :: from_points( 5.0 , 5.0 , 5.0 , 5.0 ) , Some ( 0.0 ) , Rect :: new( 5.0 , 5.0 , 5.0 , 5.0 ) ) ]
388
- fn resolve_or_default_points (
340
+ fn resolve_or_zero_points (
389
341
#[ case] input : Rect < Dimension > ,
390
342
#[ case] context : Option < f32 > ,
391
343
#[ case] expected : Rect < f32 > ,
392
344
) {
393
- assert_eq ! ( input. resolve_or_default ( context) , expected) ;
345
+ assert_eq ! ( input. resolve_or_zero ( context) , expected) ;
394
346
}
395
347
396
348
#[ rstest]
397
349
#[ case( Rect :: from_percent( 5.0 , 5.0 , 5.0 , 5.0 ) , None , Rect :: zero( ) ) ]
398
350
#[ case( Rect :: from_percent( 5.0 , 5.0 , 5.0 , 5.0 ) , Some ( 5.0 ) , Rect :: new( 25.0 , 25.0 , 25.0 , 25.0 ) ) ]
399
351
#[ case( Rect :: from_percent( 5.0 , 5.0 , 5.0 , 5.0 ) , Some ( -5.0 ) , Rect :: new( -25.0 , -25.0 , -25.0 , -25.0 ) ) ]
400
352
#[ case( Rect :: from_percent( 5.0 , 5.0 , 5.0 , 5.0 ) , Some ( 0.0 ) , Rect :: zero( ) ) ]
401
- fn resolve_or_default_percent (
353
+ fn resolve_or_zero_percent (
402
354
#[ case] input : Rect < Dimension > ,
403
355
#[ case] context : Option < f32 > ,
404
356
#[ case] expected : Rect < f32 > ,
405
357
) {
406
- assert_eq ! ( input. resolve_or_default ( context) , expected) ;
358
+ assert_eq ! ( input. resolve_or_zero ( context) , expected) ;
407
359
}
408
360
}
409
361
}
0 commit comments