@@ -218,7 +218,7 @@ impl OrderedElementsNfa {
218
218
edges. clone ( )
219
219
} else {
220
220
// The only state without edges is `Final`, which cannot be exited.
221
- invalid_transitions. insert ( TraversalError :: CannotExitState ( from_state_id) ) ;
221
+ invalid_transitions. insert ( TraversalError :: Exiting ( from_state_id) ) ;
222
222
break ;
223
223
} ;
224
224
@@ -231,7 +231,7 @@ impl OrderedElementsNfa {
231
231
let is_loop = to_state_id == from_state_id;
232
232
233
233
if !is_loop && !can_exit {
234
- invalid_transitions. insert ( TraversalError :: CannotExitState ( from_state_id) ) ;
234
+ invalid_transitions. insert ( TraversalError :: Exiting ( from_state_id) ) ;
235
235
// We haven't reached the min_occurs of the current state. Any further
236
236
// transitions will also suffer from the same problem. No need to report
237
237
// this same problem repeatedly, so we break here.
@@ -245,9 +245,9 @@ impl OrderedElementsNfa {
245
245
246
246
if let Err ( violation) = can_enter {
247
247
invalid_transitions
248
- . insert ( TraversalError :: CannotEnterState ( to_state_id, violation) ) ;
248
+ . insert ( TraversalError :: Entering ( to_state_id, violation) ) ;
249
249
} else if is_loop && !can_reenter {
250
- invalid_transitions. insert ( TraversalError :: CannotReEnterState ( to_state_id) ) ;
250
+ invalid_transitions. insert ( TraversalError :: ReEntering ( to_state_id) ) ;
251
251
} else {
252
252
let new_num_visits = if is_loop { num_visits + 1 } else { 1 } ;
253
253
new_states. insert ( ( to_state_id, new_num_visits) ) ;
@@ -284,19 +284,19 @@ impl OrderedElementsNfa {
284
284
let reasons = reasons
285
285
. into_iter ( )
286
286
. map ( |it| match it {
287
- TraversalError :: CannotExitState ( s) => Violation :: new (
287
+ TraversalError :: Exiting ( s) => Violation :: new (
288
288
"ordered_elements" ,
289
289
ViolationCode :: ElementMismatched ,
290
290
format ! ( "{}: min occurs not reached" , & self . states[ s] ) ,
291
291
ion_path,
292
292
) ,
293
- TraversalError :: CannotReEnterState ( s) => Violation :: new (
293
+ TraversalError :: ReEntering ( s) => Violation :: new (
294
294
"ordered_elements" ,
295
295
ViolationCode :: ElementMismatched ,
296
296
format ! ( "{}: max occurs already reached" , & self . states[ s] , ) ,
297
297
ion_path,
298
298
) ,
299
- TraversalError :: CannotEnterState ( s, v) => Violation :: with_violations (
299
+ TraversalError :: Entering ( s, v) => Violation :: with_violations (
300
300
"ordered_elements" ,
301
301
ViolationCode :: ElementMismatched ,
302
302
format ! ( "{}: does not match type" , & self . states[ s] ) ,
@@ -424,9 +424,9 @@ impl Display for State {
424
424
/// The reason why a transition (or edge) in the state machine graph cannot be traversed.
425
425
#[ derive( Debug ) ]
426
426
enum TraversalError {
427
- CannotEnterState ( StateId , Violation ) ,
428
- CannotExitState ( StateId ) ,
429
- CannotReEnterState ( StateId ) ,
427
+ Entering ( StateId , Violation ) ,
428
+ Exiting ( StateId ) ,
429
+ ReEntering ( StateId ) ,
430
430
}
431
431
432
432
impl PartialOrd for TraversalError {
@@ -438,14 +438,14 @@ impl PartialOrd for TraversalError {
438
438
impl Ord for TraversalError {
439
439
fn cmp ( & self , other : & Self ) -> Ordering {
440
440
let self_id = match self {
441
- TraversalError :: CannotEnterState ( id, _)
442
- | TraversalError :: CannotExitState ( id)
443
- | TraversalError :: CannotReEnterState ( id) => id,
441
+ TraversalError :: Entering ( id, _)
442
+ | TraversalError :: Exiting ( id)
443
+ | TraversalError :: ReEntering ( id) => id,
444
444
} ;
445
445
let other_id = match other {
446
- TraversalError :: CannotEnterState ( id, _)
447
- | TraversalError :: CannotExitState ( id)
448
- | TraversalError :: CannotReEnterState ( id) => id,
446
+ TraversalError :: Entering ( id, _)
447
+ | TraversalError :: Exiting ( id)
448
+ | TraversalError :: ReEntering ( id) => id,
449
449
} ;
450
450
self_id. cmp ( other_id)
451
451
}
@@ -456,22 +456,19 @@ impl Eq for TraversalError {}
456
456
impl PartialEq for TraversalError {
457
457
fn eq ( & self , other : & Self ) -> bool {
458
458
match ( self , other) {
459
- (
460
- TraversalError :: CannotExitState ( self_id) ,
461
- TraversalError :: CannotExitState ( other_id) ,
462
- ) => self_id == other_id,
463
- (
464
- TraversalError :: CannotReEnterState ( self_id) ,
465
- TraversalError :: CannotReEnterState ( other_id) ,
466
- ) => self_id == other_id,
459
+ ( TraversalError :: Exiting ( self_id) , TraversalError :: Exiting ( other_id) ) => {
460
+ self_id == other_id
461
+ }
462
+ ( TraversalError :: ReEntering ( self_id) , TraversalError :: ReEntering ( other_id) ) => {
463
+ self_id == other_id
464
+ }
467
465
// It is okay to ignore the violation here because we only consider one event/element at
468
466
// any given point in the state machine. Since that is the case, if the IDs are the same,
469
467
// then they must represent the same destination state (type reference), and so the
470
468
// violations must be equal.
471
- (
472
- TraversalError :: CannotEnterState ( self_id, _) ,
473
- TraversalError :: CannotEnterState ( other_id, _) ,
474
- ) => self_id == other_id,
469
+ ( TraversalError :: Entering ( self_id, _) , TraversalError :: Entering ( other_id, _) ) => {
470
+ self_id == other_id
471
+ }
475
472
( _, _) => false ,
476
473
}
477
474
}
@@ -484,9 +481,9 @@ impl Hash for TraversalError {
484
481
// between the prime numbers makes it even more unlikely that a collision would occur since
485
482
// the first IDs that could have a collision with each other would be 107 and 307.
486
483
state. write_usize ( match self {
487
- TraversalError :: CannotEnterState ( id, _) => id * 503 ,
488
- TraversalError :: CannotExitState ( id) => id * 307 ,
489
- TraversalError :: CannotReEnterState ( id) => id * 107 ,
484
+ TraversalError :: Entering ( id, _) => id * 503 ,
485
+ TraversalError :: Exiting ( id) => id * 307 ,
486
+ TraversalError :: ReEntering ( id) => id * 107 ,
490
487
} )
491
488
}
492
489
}
0 commit comments