Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ValueStringBuilder.cs
Go to the documentation of this file.
1
using
System.Buffers
;
2
using
System.Reflection
;
3
using
System.Runtime.CompilerServices
;
4
5
namespace
System.Text
;
6
7
[DefaultMember(
"Item"
)]
8
internal
ref struct
ValueStringBuilder
9
{
10
private
char
[]
_arrayToReturnToPool
;
11
12
private
Span<char>
_chars
;
13
14
private
int
_pos
;
15
16
public
int
Length
17
{
18
get
19
{
20
return
_pos
;
21
}
22
set
23
{
24
_pos
=
value
;
25
}
26
}
27
28
public
ValueStringBuilder
(
Span<char>
initialBuffer)
29
{
30
_arrayToReturnToPool
=
null
;
31
_chars
= initialBuffer;
32
_pos
= 0;
33
}
34
35
public
override
string
ToString
()
36
{
37
string
result =
_chars
.
Slice
(0,
_pos
).ToString();
38
Dispose
();
39
return
result;
40
}
41
42
public
ReadOnlySpan<char>
AsSpan
()
43
{
44
return
_chars
.
Slice
(0,
_pos
);
45
}
46
47
[MethodImpl(
MethodImplOptions
.AggressiveInlining)]
48
public
Span<char>
AppendSpan
(
int
length
)
49
{
50
int
pos =
_pos
;
51
if
(pos >
_chars
.
Length
-
length
)
52
{
53
Grow
(
length
);
54
}
55
_pos
= pos +
length
;
56
return
_chars
.
Slice
(pos,
length
);
57
}
58
59
[MethodImpl(
MethodImplOptions
.NoInlining)]
60
private
void
Grow
(
int
additionalCapacityBeyondPos)
61
{
62
char
[]
array
=
ArrayPool<char>
.
Shared
.Rent((
int
)
Math
.
Max
((uint)(
_pos
+ additionalCapacityBeyondPos), (uint)(
_chars
.
Length
* 2)));
63
_chars
.
Slice
(0,
_pos
).CopyTo(
array
);
64
char
[] arrayToReturnToPool =
_arrayToReturnToPool
;
65
_chars
= (
_arrayToReturnToPool
=
array
);
66
if
(arrayToReturnToPool !=
null
)
67
{
68
ArrayPool<char>
.
Shared
.Return(arrayToReturnToPool);
69
}
70
}
71
72
[MethodImpl(
MethodImplOptions
.AggressiveInlining)]
73
public
void
Dispose
()
74
{
75
char
[] arrayToReturnToPool =
_arrayToReturnToPool
;
76
this
=
default
(
System
.
Text
.
ValueStringBuilder
);
77
if
(arrayToReturnToPool !=
null
)
78
{
79
ArrayPool<char>
.
Shared
.Return(arrayToReturnToPool);
80
}
81
}
82
}
System.Buffers.ArrayPool.Shared
static ArrayPool< T > Shared
Definition
ArrayPool.cs:7
System.Buffers.ArrayPool
Definition
ArrayPool.cs:4
System.Math.Max
static byte Max(byte val1, byte val2)
Definition
Math.cs:738
System.Math
Definition
Math.cs:13
System.Buffers
Definition
Base64.cs:7
System.Reflection
Definition
ICustomTypeProvider.cs:1
System.Runtime.CompilerServices.MethodImplOptions
MethodImplOptions
Definition
MethodImplOptions.cs:5
System.Runtime.CompilerServices
Definition
NullablePublicOnlyAttribute.cs:3
System.Text
Definition
ConsoleEncoding.cs:1
System.ExceptionArgument.value
@ value
System.ExceptionArgument.length
@ length
System.ExceptionArgument.array
@ array
System
Definition
BlockingCollection.cs:8
System.ReadOnlySpan
Definition
ReadOnlySpan.cs:14
System.Span.Slice
Span< T > Slice(int start)
Definition
Span.cs:271
System.Span.Length
int Length
Definition
Span.cs:70
System.Span
Definition
Span.cs:14
System.Text.ValueStringBuilder.Dispose
void Dispose()
Definition
ValueStringBuilder.cs:68
System.Text.ValueStringBuilder.ValueStringBuilder
ValueStringBuilder(Span< char > initialBuffer)
Definition
ValueStringBuilder.cs:28
System.Text.ValueStringBuilder.AsSpan
ReadOnlySpan< char > AsSpan()
Definition
ValueStringBuilder.cs:42
System.Text.ValueStringBuilder.Length
int Length
Definition
ValueStringBuilder.cs:18
System.Text.ValueStringBuilder.ToString
override string ToString()
Definition
ValueStringBuilder.cs:35
System.Text.ValueStringBuilder._arrayToReturnToPool
char[] _arrayToReturnToPool
Definition
ValueStringBuilder.cs:11
System.Text.ValueStringBuilder._chars
Span< char > _chars
Definition
ValueStringBuilder.cs:13
System.Text.ValueStringBuilder._pos
int _pos
Definition
ValueStringBuilder.cs:15
System.Text.ValueStringBuilder.AppendSpan
Span< char > AppendSpan(int length)
Definition
ValueStringBuilder.cs:48
System.Text.ValueStringBuilder.Grow
void Grow(int additionalCapacityBeyondPos)
Definition
ValueStringBuilder.cs:55
System.Text.ValueStringBuilder
Definition
ValueStringBuilder.cs:10
source
System.Text.Encodings.Web
System.Text
ValueStringBuilder.cs
Generated by
1.10.0