Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros
NodeRangeIterator.cs
Go to the documentation of this file.
3
5
7public struct NodeRangeIterator
8{
9 private enum IteratorState
10 {
14 NoNext
15 }
16
18
20
22
24
26
28 {
32 if (start.IsSamePosition(end))
33 {
34 _state = ((!filter.IsFiltered(start)) ? IteratorState.HaveCurrentNoNext : IteratorState.NoNext);
35 }
36 else
37 {
38 _state = (filter.IsFiltered(start) ? IteratorState.NeedCurrent : IteratorState.HaveCurrent);
39 }
40 }
41
42 public bool MoveNext()
43 {
44 switch (_state)
45 {
46 case IteratorState.HaveCurrent:
47 _state = IteratorState.NeedCurrent;
48 return true;
49 case IteratorState.NeedCurrent:
51 {
53 {
54 _state = IteratorState.NoNext;
55 return false;
56 }
58 _state = IteratorState.NoNext;
59 }
60 return true;
61 case IteratorState.HaveCurrentNoNext:
62 _state = IteratorState.NoNext;
63 return true;
64 default:
65 return false;
66 }
67 }
68}
bool MoveTo(XPathNavigator other)
bool IsFiltered(XPathNavigator navigator)
bool MoveToFollowing(XPathNavigator navigator, XPathNavigator navigatorEnd)
static XPathNavigator SyncToNavigator(XPathNavigator navigatorThis, XPathNavigator navigatorThat)
void Create(XPathNavigator start, XmlNavigatorFilter filter, XPathNavigator end)