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
using
System.Runtime.InteropServices
;
5
6
namespace
System.Text
;
7
8
[DefaultMember(
"Item"
)]
9
internal
ref struct
ValueStringBuilder
10
{
11
private
char
[]
_arrayToReturnToPool
;
12
13
private
Span<char>
_chars
;
14
15
private
int
_pos
;
16
17
public
int
Length
18
{
19
set
20
{
21
_pos
=
value
;
22
}
23
}
24
25
public
int
Capacity
=>
_chars
.
Length
;
26
27
public
ValueStringBuilder
(
Span<char>
initialBuffer)
28
{
29
_arrayToReturnToPool
=
null
;
30
_chars
= initialBuffer;
31
_pos
= 0;
32
}
33
34
public
void
EnsureCapacity
(
int
capacity
)
35
{
36
if
((uint)
capacity
> (uint)
_chars
.
Length
)
37
{
38
Grow
(
capacity
-
_pos
);
39
}
40
}
41
42
public
ref
char
GetPinnableReference
()
43
{
44
return
ref
MemoryMarshal
.GetReference(
_chars
);
45
}
46
47
public
override
string
ToString
()
48
{
49
string
result =
_chars
.
Slice
(0,
_pos
).ToString();
50
Dispose
();
51
return
result;
52
}
53
54
[MethodImpl(
MethodImplOptions
.NoInlining)]
55
private
void
Grow
(
int
additionalCapacityBeyondPos)
56
{
57
char
[]
array
=
ArrayPool<char>
.
Shared
.Rent((
int
)
Math
.
Max
((uint)(
_pos
+ additionalCapacityBeyondPos), (uint)(
_chars
.
Length
* 2)));
58
_chars
.
Slice
(0,
_pos
).CopyTo(
array
);
59
char
[] arrayToReturnToPool =
_arrayToReturnToPool
;
60
_chars
= (
_arrayToReturnToPool
=
array
);
61
if
(arrayToReturnToPool !=
null
)
62
{
63
ArrayPool<char>
.
Shared
.Return(arrayToReturnToPool);
64
}
65
}
66
67
[MethodImpl(
MethodImplOptions
.AggressiveInlining)]
68
public
void
Dispose
()
69
{
70
char
[] arrayToReturnToPool =
_arrayToReturnToPool
;
71
this
=
default
(
System
.
Text
.
ValueStringBuilder
);
72
if
(arrayToReturnToPool !=
null
)
73
{
74
ArrayPool<char>
.
Shared
.Return(arrayToReturnToPool);
75
}
76
}
77
}
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.Runtime.InteropServices.MemoryMarshal
Definition
MemoryMarshal.cs:11
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.Runtime.InteropServices
Definition
SequenceMarshal.cs:4
System.Text
Definition
ConsoleEncoding.cs:1
System.ExceptionArgument.value
@ value
System.ExceptionArgument.capacity
@ capacity
System.ExceptionArgument.array
@ array
System
Definition
BlockingCollection.cs:8
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:27
System.Text.ValueStringBuilder.GetPinnableReference
ref char GetPinnableReference()
Definition
ValueStringBuilder.cs:42
System.Text.ValueStringBuilder.Length
int Length
Definition
ValueStringBuilder.cs:18
System.Text.ValueStringBuilder.EnsureCapacity
void EnsureCapacity(int capacity)
Definition
ValueStringBuilder.cs:34
System.Text.ValueStringBuilder.ToString
override string ToString()
Definition
ValueStringBuilder.cs:47
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.Grow
void Grow(int additionalCapacityBeyondPos)
Definition
ValueStringBuilder.cs:55
System.Text.ValueStringBuilder.Capacity
int Capacity
Definition
ValueStringBuilder.cs:25
System.Text.ValueStringBuilder
Definition
ValueStringBuilder.cs:10
source
System.Console
System.Text
ValueStringBuilder.cs
Generated by
1.10.0