Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DifferenceIterator.cs
Go to the documentation of this file.
3
5
7public struct DifferenceIterator
8{
9 private enum IteratorState
10 {
16 }
17
19
21
23
25
27
29 {
31 _state = IteratorState.InitLeft;
32 }
33
35 {
36 switch (_state)
37 {
38 case IteratorState.InitLeft:
40 _state = IteratorState.NeedRight;
41 return SetIteratorResult.InitRightIterator;
42 case IteratorState.NeedLeft:
44 break;
45 case IteratorState.NeedRight:
47 break;
48 case IteratorState.NeedLeftAndRight:
50 _state = IteratorState.NeedRight;
51 return SetIteratorResult.NeedRightNode;
52 case IteratorState.HaveCurrent:
53 _state = IteratorState.NeedLeft;
54 return SetIteratorResult.NeedLeftNode;
55 }
56 if (_navLeft == null)
57 {
58 return SetIteratorResult.NoMoreNodes;
59 }
60 if (_navRight != null)
61 {
63 if (num == 0)
64 {
65 _state = IteratorState.NeedLeftAndRight;
66 return SetIteratorResult.NeedLeftNode;
67 }
68 if (num > 0)
69 {
70 _state = IteratorState.NeedRight;
71 return SetIteratorResult.NeedRightNode;
72 }
73 }
74 _state = IteratorState.HaveCurrent;
75 return SetIteratorResult.HaveCurrentNode;
76 }
77}
int ComparePosition(XPathNavigator navigatorThis, XPathNavigator navigatorThat)
SetIteratorResult MoveNext(XPathNavigator nestedNavigator)