Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ MoveNext()

SetIteratorResult System.Xml.Xsl.Runtime.UnionIterator.MoveNext ( XPathNavigator nestedNavigator)
inline

Definition at line 34 of file UnionIterator.cs.

35 {
36 switch (_state)
37 {
38 case IteratorState.InitLeft:
40 _state = IteratorState.NeedRight;
41 return SetIteratorResult.InitRightIterator;
42 case IteratorState.NeedLeft:
44 _state = IteratorState.LeftIsCurrent;
45 break;
46 case IteratorState.NeedRight:
48 _state = IteratorState.RightIsCurrent;
49 break;
50 case IteratorState.LeftIsCurrent:
51 _state = IteratorState.NeedLeft;
52 return SetIteratorResult.NeedLeftNode;
53 case IteratorState.RightIsCurrent:
54 _state = IteratorState.NeedRight;
55 return SetIteratorResult.NeedRightNode;
56 }
57 if (_navCurr == null)
58 {
59 if (_navOther == null)
60 {
61 return SetIteratorResult.NoMoreNodes;
62 }
63 Swap();
64 }
65 else if (_navOther != null)
66 {
68 if (num == 0)
69 {
70 if (_state == IteratorState.LeftIsCurrent)
71 {
72 _state = IteratorState.NeedLeft;
73 return SetIteratorResult.NeedLeftNode;
74 }
75 _state = IteratorState.NeedRight;
76 return SetIteratorResult.NeedRightNode;
77 }
78 if (num < 0)
79 {
80 Swap();
81 }
82 }
83 return SetIteratorResult.HaveCurrentNode;
84 }
int ComparePosition(XPathNavigator navigatorThis, XPathNavigator navigatorThat)

References System.Xml.Xsl.Runtime.UnionIterator._navCurr, System.Xml.Xsl.Runtime.UnionIterator._navOther, System.Xml.Xsl.Runtime.UnionIterator._runtime, System.Xml.Xsl.Runtime.UnionIterator._state, System.Xml.Xsl.Runtime.XmlQueryRuntime.ComparePosition(), System.Xml.Dictionary, and System.Xml.Xsl.Runtime.UnionIterator.Swap().