Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
CharEntityEncoderFallbackBuffer.cs
Go to the documentation of this file.
1
using
System.Runtime.CompilerServices
;
2
using
System.Text
;
3
4
namespace
System.Xml
;
5
6
internal
sealed
class
CharEntityEncoderFallbackBuffer
:
EncoderFallbackBuffer
7
{
8
private
readonly
CharEntityEncoderFallback
_parent
;
9
10
private
string
_charEntity
=
string
.Empty;
11
12
private
int
_charEntityIndex
= -1;
13
14
public
override
int
Remaining
15
{
16
get
17
{
18
if
(
_charEntityIndex
== -1)
19
{
20
return
0;
21
}
22
return
_charEntity.Length
-
_charEntityIndex
;
23
}
24
}
25
26
internal
CharEntityEncoderFallbackBuffer
(
CharEntityEncoderFallback
parent)
27
{
28
_parent
= parent;
29
}
30
31
public
override
bool
Fallback
(
char
charUnknown,
int
index
)
32
{
33
if
(
_charEntityIndex
>= 0)
34
{
35
new
EncoderExceptionFallback
().
CreateFallbackBuffer
().
Fallback
(charUnknown,
index
);
36
}
37
if
(
_parent
.
CanReplaceAt
(
index
))
38
{
39
IFormatProvider
formatProvider
=
null
;
40
IFormatProvider
provider
=
formatProvider
;
41
Span<char>
initialBuffer
=
stackalloc
char
[64];
42
DefaultInterpolatedStringHandler
handler =
new
DefaultInterpolatedStringHandler
(4, 1,
formatProvider
,
initialBuffer
);
43
handler.
AppendLiteral
(
"&#x"
);
44
handler.
AppendFormatted
((
int
)charUnknown,
"X"
);
45
handler.
AppendLiteral
(
";"
);
46
_charEntity
=
string
.Create(
provider
,
initialBuffer
,
ref
handler);
47
_charEntityIndex
= 0;
48
return
true
;
49
}
50
EncoderFallbackBuffer
encoderFallbackBuffer
=
new
EncoderExceptionFallback
().
CreateFallbackBuffer
();
51
encoderFallbackBuffer
.
Fallback
(charUnknown,
index
);
52
return
false
;
53
}
54
55
public
override
bool
Fallback
(
char
charUnknownHigh
,
char
charUnknownLow
,
int
index
)
56
{
57
if
(!
char
.IsSurrogatePair(
charUnknownHigh
,
charUnknownLow
))
58
{
59
throw
XmlConvert
.
CreateInvalidSurrogatePairException
(
charUnknownHigh
,
charUnknownLow
);
60
}
61
if
(
_charEntityIndex
>= 0)
62
{
63
new
EncoderExceptionFallback
().
CreateFallbackBuffer
().
Fallback
(
charUnknownHigh
,
charUnknownLow
,
index
);
64
}
65
if
(
_parent
.
CanReplaceAt
(
index
))
66
{
67
IFormatProvider
formatProvider
=
null
;
68
IFormatProvider
provider
=
formatProvider
;
69
Span<char>
initialBuffer
=
stackalloc
char
[64];
70
DefaultInterpolatedStringHandler
handler =
new
DefaultInterpolatedStringHandler
(4, 1,
formatProvider
,
initialBuffer
);
71
handler.
AppendLiteral
(
"&#x"
);
72
handler.
AppendFormatted
(
SurrogateCharToUtf32
(
charUnknownHigh
,
charUnknownLow
),
"X"
);
73
handler.
AppendLiteral
(
";"
);
74
_charEntity
=
string
.Create(
provider
,
initialBuffer
,
ref
handler);
75
_charEntityIndex
= 0;
76
return
true
;
77
}
78
EncoderFallbackBuffer
encoderFallbackBuffer
=
new
EncoderExceptionFallback
().
CreateFallbackBuffer
();
79
encoderFallbackBuffer
.
Fallback
(
charUnknownHigh
,
charUnknownLow
,
index
);
80
return
false
;
81
}
82
83
public
override
char
GetNextChar
()
84
{
85
if
(
_charEntityIndex
==
_charEntity
.Length)
86
{
87
_charEntityIndex
= -1;
88
}
89
if
(
_charEntityIndex
== -1)
90
{
91
return
'\0'
;
92
}
93
return
_charEntity
[
_charEntityIndex
++];
94
}
95
96
public
override
bool
MovePrevious
()
97
{
98
if
(
_charEntityIndex
== -1)
99
{
100
return
false
;
101
}
102
if
(
_charEntityIndex
> 0)
103
{
104
_charEntityIndex
--;
105
return
true
;
106
}
107
return
false
;
108
}
109
110
public
override
void
Reset
()
111
{
112
_charEntityIndex
= -1;
113
}
114
115
private
int
SurrogateCharToUtf32
(
char
highSurrogate
,
char
lowSurrogate
)
116
{
117
return
XmlCharType
.
CombineSurrogateChar
(
lowSurrogate
,
highSurrogate
);
118
}
119
}
System.Text.EncoderExceptionFallback.CreateFallbackBuffer
override EncoderFallbackBuffer CreateFallbackBuffer()
Definition
EncoderExceptionFallback.cs:11
System.Text.EncoderExceptionFallback
Definition
EncoderExceptionFallback.cs:6
System.Text.EncoderFallbackBuffer.Fallback
bool Fallback(char charUnknown, int index)
System.Text.EncoderFallbackBuffer
Definition
EncoderFallbackBuffer.cs:7
System.Xml.CharEntityEncoderFallbackBuffer.Fallback
override bool Fallback(char charUnknown, int index)
Definition
CharEntityEncoderFallbackBuffer.cs:31
System.Xml.CharEntityEncoderFallbackBuffer.CharEntityEncoderFallbackBuffer
CharEntityEncoderFallbackBuffer(CharEntityEncoderFallback parent)
Definition
CharEntityEncoderFallbackBuffer.cs:26
System.Xml.CharEntityEncoderFallbackBuffer.MovePrevious
override bool MovePrevious()
Definition
CharEntityEncoderFallbackBuffer.cs:96
System.Xml.CharEntityEncoderFallbackBuffer._parent
readonly CharEntityEncoderFallback _parent
Definition
CharEntityEncoderFallbackBuffer.cs:8
System.Xml.CharEntityEncoderFallbackBuffer._charEntity
string _charEntity
Definition
CharEntityEncoderFallbackBuffer.cs:10
System.Xml.CharEntityEncoderFallbackBuffer.Remaining
override int Remaining
Definition
CharEntityEncoderFallbackBuffer.cs:15
System.Xml.CharEntityEncoderFallbackBuffer._charEntityIndex
int _charEntityIndex
Definition
CharEntityEncoderFallbackBuffer.cs:12
System.Xml.CharEntityEncoderFallbackBuffer.Fallback
override bool Fallback(char charUnknownHigh, char charUnknownLow, int index)
Definition
CharEntityEncoderFallbackBuffer.cs:55
System.Xml.CharEntityEncoderFallbackBuffer.GetNextChar
override char GetNextChar()
Definition
CharEntityEncoderFallbackBuffer.cs:83
System.Xml.CharEntityEncoderFallbackBuffer.SurrogateCharToUtf32
int SurrogateCharToUtf32(char highSurrogate, char lowSurrogate)
Definition
CharEntityEncoderFallbackBuffer.cs:115
System.Xml.CharEntityEncoderFallbackBuffer.Reset
override void Reset()
Definition
CharEntityEncoderFallbackBuffer.cs:110
System.Xml.CharEntityEncoderFallbackBuffer
Definition
CharEntityEncoderFallbackBuffer.cs:7
System.Xml.CharEntityEncoderFallback.CanReplaceAt
bool CanReplaceAt(int index)
Definition
CharEntityEncoderFallback.cs:47
System.Xml.CharEntityEncoderFallback
Definition
CharEntityEncoderFallback.cs:6
System.Xml.XmlCharType.CombineSurrogateChar
static int CombineSurrogateChar(int lowChar, int highChar)
Definition
XmlCharType.cs:6674
System.Xml.XmlCharType
Definition
XmlCharType.cs:7
System.Xml.XmlConvert.CreateInvalidSurrogatePairException
static Exception CreateInvalidSurrogatePairException(char low, char hi)
Definition
XmlConvert.cs:1419
System.Xml.XmlConvert
Definition
XmlConvert.cs:11
System.IFormatProvider
Definition
IFormatProvider.cs:4
System.Runtime.CompilerServices
Definition
NullablePublicOnlyAttribute.cs:3
System.Text
Definition
ConsoleEncoding.cs:1
System.Xml.ValueHandleType.Dictionary
@ Dictionary
System.Xml
Definition
BaseRegionIterator.cs:1
System.ExceptionArgument.index
@ index
System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.AppendLiteral
void AppendLiteral(string value)
Definition
DefaultInterpolatedStringHandler.cs:78
System.Runtime.CompilerServices.DefaultInterpolatedStringHandler.AppendFormatted
void AppendFormatted(ReadOnlySpan< char > value)
Definition
DefaultInterpolatedStringHandler.cs:210
System.Runtime.CompilerServices.DefaultInterpolatedStringHandler
Definition
DefaultInterpolatedStringHandler.cs:10
System.Span
Definition
Span.cs:14
source
System.Private.Xml
System.Xml
CharEntityEncoderFallbackBuffer.cs
Generated by
1.10.0