Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ActivitySpanId.cs
Go to the documentation of this file.
1
using
System.Buffers.Binary
;
2
using
System.Buffers.Text
;
3
using
System.Diagnostics.CodeAnalysis
;
4
using
System.Runtime.CompilerServices
;
5
6
namespace
System.Diagnostics
;
7
8
public
readonly
struct
ActivitySpanId
:
IEquatable
<ActivitySpanId>
9
{
10
private
readonly
string
_hexString
;
11
12
internal
ActivitySpanId
(
string
hexString)
13
{
14
_hexString
= hexString;
15
}
16
17
public
unsafe
static
ActivitySpanId
CreateRandom
()
18
{
19
Unsafe
.SkipInit(out ulong num);
20
ActivityTraceId
.
SetToRandomBytes
(
new
Span<byte>
(&num, 8));
21
return
new
ActivitySpanId
(
System
.
HexConverter
.
ToString
(
new
ReadOnlySpan<byte>
(&num, 8),
System
.
HexConverter
.
Casing
.Lower));
22
}
23
24
public
static
ActivitySpanId
CreateFromBytes
(
ReadOnlySpan<byte>
idData)
25
{
26
if
(idData.
Length
!= 8)
27
{
28
throw
new
ArgumentOutOfRangeException
(
"idData"
);
29
}
30
return
new
ActivitySpanId
(
System
.
HexConverter
.
ToString
(idData,
System
.
HexConverter
.
Casing
.Lower));
31
}
32
33
public
static
ActivitySpanId
CreateFromUtf8String
(
ReadOnlySpan<byte>
idData)
34
{
35
return
new
ActivitySpanId
(idData);
36
}
37
38
public
static
ActivitySpanId
CreateFromString
(
ReadOnlySpan<char>
idData)
39
{
40
if
(idData.
Length
!= 16 || !
ActivityTraceId
.
IsLowerCaseHexAndNotAllZeros
(idData))
41
{
42
throw
new
ArgumentOutOfRangeException
(
"idData"
);
43
}
44
return
new
ActivitySpanId
(idData.
ToString
());
45
}
46
47
public
string
ToHexString
()
48
{
49
return
_hexString
??
"0000000000000000"
;
50
}
51
52
public
override
string
ToString
()
53
{
54
return
ToHexString
();
55
}
56
57
public
static
bool
operator ==
(
ActivitySpanId
spanId1,
ActivitySpanId
spandId2)
58
{
59
return
spanId1._hexString == spandId2.
_hexString
;
60
}
61
62
public
static
bool
operator !=
(
ActivitySpanId
spanId1,
ActivitySpanId
spandId2)
63
{
64
return
spanId1._hexString != spandId2.
_hexString
;
65
}
66
67
public
bool
Equals
(
ActivitySpanId
spanId)
68
{
69
return
_hexString
== spanId.
_hexString
;
70
}
71
72
public
override
bool
Equals
([NotNullWhen(
true
)]
object
?
obj
)
73
{
74
if
(
obj
is
ActivitySpanId
activitySpanId)
75
{
76
return
_hexString
== activitySpanId._hexString;
77
}
78
return
false
;
79
}
80
81
public
override
int
GetHashCode
()
82
{
83
return
ToHexString
().GetHashCode();
84
}
85
86
private
unsafe
ActivitySpanId
(
ReadOnlySpan<byte>
idData)
87
{
88
if
(idData.
Length
!= 16)
89
{
90
throw
new
ArgumentOutOfRangeException
(
"idData"
);
91
}
92
if
(!
Utf8Parser
.
TryParse
(idData, out ulong
value
, out
int
_,
'x'
))
93
{
94
_hexString
=
CreateRandom
()._hexString;
95
return
;
96
}
97
if
(
BitConverter
.
IsLittleEndian
)
98
{
99
value
=
BinaryPrimitives
.
ReverseEndianness
(
value
);
100
}
101
_hexString
=
System
.
HexConverter
.
ToString
(
new
ReadOnlySpan<byte>
(&
value
, 8),
System
.
HexConverter
.
Casing
.Lower);
102
}
103
104
public
void
CopyTo
(
Span<byte>
destination
)
105
{
106
ActivityTraceId
.
SetSpanFromHexChars
(
ToHexString
().AsSpan(),
destination
);
107
}
108
}
System.ArgumentOutOfRangeException
Definition
ArgumentOutOfRangeException.cs:9
System.BitConverter.IsLittleEndian
static readonly bool IsLittleEndian
Definition
BitConverter.cs:12
System.BitConverter
Definition
BitConverter.cs:10
System.Buffers.Binary.BinaryPrimitives.ReverseEndianness
static sbyte ReverseEndianness(sbyte value)
Definition
BinaryPrimitives.cs:11
System.Buffers.Binary.BinaryPrimitives
Definition
BinaryPrimitives.cs:8
System.Buffers.Text.Utf8Parser.TryParse
static bool TryParse(ReadOnlySpan< byte > source, out bool value, out int bytesConsumed, char standardFormat='\0')
Definition
Utf8Parser.cs:179
System.Buffers.Text.Utf8Parser
Definition
Utf8Parser.cs:7
System.HexConverter.Casing
Casing
Definition
HexConverter.cs:8
System.HexConverter.ToString
static unsafe string ToString(ReadOnlySpan< byte > bytes, Casing casing=Casing.Upper)
Definition
HexConverter.cs:30
System.HexConverter
Definition
HexConverter.cs:6
System.Runtime.CompilerServices.Unsafe
Definition
Unsafe.cs:6
System.IEquatable
Definition
IEquatable.cs:4
System.Buffers.Binary
Definition
BinaryPrimitives.cs:5
System.Buffers.Text
Definition
Base64.cs:7
System.Diagnostics.CodeAnalysis
Definition
AllowNullAttribute.cs:1
System.Diagnostics
Definition
AggregationManager.cs:6
System.Runtime.CompilerServices
Definition
NullablePublicOnlyAttribute.cs:3
System.ExceptionArgument.value
@ value
System.ExceptionArgument.destination
@ destination
System.ExceptionArgument.obj
@ obj
System
Definition
BlockingCollection.cs:8
System.Diagnostics.ActivitySpanId.operator==
static bool operator==(ActivitySpanId spanId1, ActivitySpanId spandId2)
Definition
ActivitySpanId.cs:57
System.Diagnostics.ActivitySpanId.ToHexString
string ToHexString()
Definition
ActivitySpanId.cs:47
System.Diagnostics.ActivitySpanId.ActivitySpanId
unsafe ActivitySpanId(ReadOnlySpan< byte > idData)
Definition
ActivitySpanId.cs:86
System.Diagnostics.ActivitySpanId.operator!=
static bool operator!=(ActivitySpanId spanId1, ActivitySpanId spandId2)
Definition
ActivitySpanId.cs:62
System.Diagnostics.ActivitySpanId.Equals
bool Equals(ActivitySpanId spanId)
Definition
ActivitySpanId.cs:67
System.Diagnostics.ActivitySpanId.ActivitySpanId
ActivitySpanId(string hexString)
Definition
ActivitySpanId.cs:12
System.Diagnostics.ActivitySpanId._hexString
readonly string _hexString
Definition
ActivitySpanId.cs:10
System.Diagnostics.ActivitySpanId.CreateFromBytes
static ActivitySpanId CreateFromBytes(ReadOnlySpan< byte > idData)
Definition
ActivitySpanId.cs:24
System.Diagnostics.ActivitySpanId.CreateRandom
static unsafe ActivitySpanId CreateRandom()
Definition
ActivitySpanId.cs:17
System.Diagnostics.ActivitySpanId.CreateFromUtf8String
static ActivitySpanId CreateFromUtf8String(ReadOnlySpan< byte > idData)
Definition
ActivitySpanId.cs:33
System.Diagnostics.ActivitySpanId.CopyTo
void CopyTo(Span< byte > destination)
Definition
ActivitySpanId.cs:104
System.Diagnostics.ActivitySpanId.GetHashCode
override int GetHashCode()
Definition
ActivitySpanId.cs:81
System.Diagnostics.ActivitySpanId.CreateFromString
static ActivitySpanId CreateFromString(ReadOnlySpan< char > idData)
Definition
ActivitySpanId.cs:38
System.Diagnostics.ActivitySpanId.ToString
override string ToString()
Definition
ActivitySpanId.cs:52
System.Diagnostics.ActivitySpanId.Equals
override bool Equals([NotNullWhen(true)] object? obj)
Definition
ActivitySpanId.cs:72
System.Diagnostics.ActivitySpanId
Definition
ActivitySpanId.cs:9
System.Diagnostics.ActivityTraceId.IsLowerCaseHexAndNotAllZeros
static bool IsLowerCaseHexAndNotAllZeros(ReadOnlySpan< char > idData)
Definition
ActivityTraceId.cs:146
System.Diagnostics.ActivityTraceId.SetSpanFromHexChars
static void SetSpanFromHexChars(ReadOnlySpan< char > charData, Span< byte > outBytes)
Definition
ActivityTraceId.cs:127
System.Diagnostics.ActivityTraceId.SetToRandomBytes
static void SetToRandomBytes(Span< byte > outBytes)
Definition
ActivityTraceId.cs:117
System.Diagnostics.ActivityTraceId
Definition
ActivityTraceId.cs:10
System.ReadOnlySpan.Length
int Length
Definition
ReadOnlySpan.cs:70
System.ReadOnlySpan.ToString
override string ToString()
Definition
ReadOnlySpan.cs:222
System.ReadOnlySpan
Definition
ReadOnlySpan.cs:14
System.Span
Definition
Span.cs:14
source
System.Diagnostics.DiagnosticSource
System.Diagnostics
ActivitySpanId.cs
Generated by
1.10.0