@@ -295,8 +295,12 @@ impl FieldInfo {
295
295
if lvl. is_strict ( ) {
296
296
match self . enumerated_values . as_slice ( ) {
297
297
[ ] | [ _] => { }
298
- [ ev1, ev2] if ( ev1. usage ( ) == Usage :: Read && ev2. usage ( ) == Usage :: Write ) => { }
299
- [ ev1, ev2] if ( ev2. usage ( ) == Usage :: Read && ev1. usage ( ) == Usage :: Write ) => { }
298
+ [ ev1, ev2]
299
+ if matches ! ( ev1. usage( ) , None | Some ( Usage :: Read ) )
300
+ && matches ! ( ev2. usage( ) , None | Some ( Usage :: Write ) ) => { }
301
+ [ ev1, ev2]
302
+ if matches ! ( ev2. usage( ) , None | Some ( Usage :: Read ) )
303
+ && matches ! ( ev1. usage( ) , None | Some ( Usage :: Write ) ) => { }
300
304
_ => return Err ( Error :: IncompatibleEnumeratedValues . into ( ) ) ,
301
305
}
302
306
}
@@ -325,7 +329,10 @@ impl FieldInfo {
325
329
/// Get enumeratedValues cluster by usage
326
330
pub fn get_enumerated_values ( & self , usage : Usage ) -> Option < & EnumeratedValues > {
327
331
match self . enumerated_values . len ( ) {
328
- 1 | 2 => self . enumerated_values . iter ( ) . find ( |ev| ev. usage ( ) == usage) ,
332
+ 1 | 2 => self
333
+ . enumerated_values
334
+ . iter ( )
335
+ . find ( |ev| ev. usage ( ) == Some ( usage) ) ,
329
336
_ => None ,
330
337
}
331
338
}
@@ -336,7 +343,7 @@ impl FieldInfo {
336
343
1 | 2 => self
337
344
. enumerated_values
338
345
. iter_mut ( )
339
- . find ( |ev| ev. usage ( ) == usage) ,
346
+ . find ( |ev| ev. usage ( ) == Some ( usage) ) ,
340
347
_ => None ,
341
348
}
342
349
}
0 commit comments