Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DifferenceIterator.cs
Go to the documentation of this file.
1
using
System.ComponentModel
;
2
using
System.Xml.XPath
;
3
4
namespace
System.Xml.Xsl.Runtime
;
5
6
[
EditorBrowsable
(
EditorBrowsableState
.Never)]
7
public
struct
DifferenceIterator
8
{
9
private
enum
IteratorState
10
{
11
InitLeft
,
12
NeedLeft
,
13
NeedRight
,
14
NeedLeftAndRight
,
15
HaveCurrent
16
}
17
18
private
XmlQueryRuntime
_runtime
;
19
20
private
XPathNavigator
_navLeft
;
21
22
private
XPathNavigator
_navRight
;
23
24
private
IteratorState
_state
;
25
26
public
XPathNavigator
Current
=>
_navLeft
;
27
28
public
void
Create
(
XmlQueryRuntime
runtime
)
29
{
30
_runtime
=
runtime
;
31
_state
=
IteratorState
.InitLeft;
32
}
33
34
public
SetIteratorResult
MoveNext
(
XPathNavigator
nestedNavigator
)
35
{
36
switch
(
_state
)
37
{
38
case
IteratorState
.InitLeft:
39
_navLeft
=
nestedNavigator
;
40
_state
=
IteratorState
.NeedRight;
41
return
SetIteratorResult
.InitRightIterator;
42
case
IteratorState
.NeedLeft:
43
_navLeft
=
nestedNavigator
;
44
break
;
45
case
IteratorState
.NeedRight:
46
_navRight
=
nestedNavigator
;
47
break
;
48
case
IteratorState
.NeedLeftAndRight:
49
_navLeft
=
nestedNavigator
;
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
{
62
int
num =
_runtime
.
ComparePosition
(
_navLeft
,
_navRight
);
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
}
System.Xml.XPath.XPathNavigator
Definition
XPathNavigator.cs:15
System.Xml.Xsl.Runtime.XmlQueryRuntime.ComparePosition
int ComparePosition(XPathNavigator navigatorThis, XPathNavigator navigatorThat)
Definition
XmlQueryRuntime.cs:589
System.Xml.Xsl.Runtime.XmlQueryRuntime
Definition
XmlQueryRuntime.cs:16
System.ComponentModel.EditorBrowsableState
EditorBrowsableState
Definition
EditorBrowsableState.cs:4
System.ComponentModel
Definition
ColumnAttribute.cs:3
System.Xml.XPath
Definition
Extensions.cs:5
System.Xml.Xsl.Runtime.SetIteratorResult
SetIteratorResult
Definition
SetIteratorResult.cs:7
System.Xml.Xsl.Runtime
Definition
AncestorDocOrderIterator.cs:4
System.Xml.ValueHandleType.Dictionary
@ Dictionary
System.Xml.Xsl.Runtime.DifferenceIterator.MoveNext
SetIteratorResult MoveNext(XPathNavigator nestedNavigator)
Definition
DifferenceIterator.cs:34
System.Xml.Xsl.Runtime.DifferenceIterator._navLeft
XPathNavigator _navLeft
Definition
DifferenceIterator.cs:20
System.Xml.Xsl.Runtime.DifferenceIterator._runtime
XmlQueryRuntime _runtime
Definition
DifferenceIterator.cs:18
System.Xml.Xsl.Runtime.DifferenceIterator.IteratorState
IteratorState
Definition
DifferenceIterator.cs:10
System.Xml.Xsl.Runtime.DifferenceIterator.IteratorState.NeedLeft
@ NeedLeft
System.Xml.Xsl.Runtime.DifferenceIterator.IteratorState.InitLeft
@ InitLeft
System.Xml.Xsl.Runtime.DifferenceIterator.IteratorState.HaveCurrent
@ HaveCurrent
System.Xml.Xsl.Runtime.DifferenceIterator.IteratorState.NeedRight
@ NeedRight
System.Xml.Xsl.Runtime.DifferenceIterator.IteratorState.NeedLeftAndRight
@ NeedLeftAndRight
System.Xml.Xsl.Runtime.DifferenceIterator._state
IteratorState _state
Definition
DifferenceIterator.cs:24
System.Xml.Xsl.Runtime.DifferenceIterator.Current
XPathNavigator Current
Definition
DifferenceIterator.cs:26
System.Xml.Xsl.Runtime.DifferenceIterator.Create
void Create(XmlQueryRuntime runtime)
Definition
DifferenceIterator.cs:28
System.Xml.Xsl.Runtime.DifferenceIterator._navRight
XPathNavigator _navRight
Definition
DifferenceIterator.cs:22
System.Xml.Xsl.Runtime.DifferenceIterator
Definition
DifferenceIterator.cs:8
source
System.Private.Xml
System.Xml.Xsl.Runtime
DifferenceIterator.cs
Generated by
1.10.0