Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ActivityTraceId() [2/2]

System.Diagnostics.ActivityTraceId.ActivityTraceId ( ReadOnlySpan< byte > idData)
inlineprivate

Definition at line 87 of file ActivityTraceId.cs.

88 {
89 if (idData.Length != 32)
90 {
91 throw new ArgumentOutOfRangeException("idData");
92 }
93 Span<ulong> span = stackalloc ulong[2];
94 if (!Utf8Parser.TryParse(idData.Slice(0, 16), out span[0], out int bytesConsumed, 'x'))
95 {
96 _hexString = CreateRandom()._hexString;
97 return;
98 }
99 if (!Utf8Parser.TryParse(idData.Slice(16, 16), out span[1], out bytesConsumed, 'x'))
100 {
101 _hexString = CreateRandom()._hexString;
102 return;
103 }
104 if (BitConverter.IsLittleEndian)
105 {
106 span[0] = BinaryPrimitives.ReverseEndianness(span[0]);
107 span[1] = BinaryPrimitives.ReverseEndianness(span[1]);
108 }
110 }
static sbyte ReverseEndianness(sbyte value)
static bool TryParse(ReadOnlySpan< byte > source, out bool value, out int bytesConsumed, char standardFormat='\0')
static unsafe string ToString(ReadOnlySpan< byte > bytes, Casing casing=Casing.Upper)
static ActivityTraceId CreateRandom()
ReadOnlySpan< T > Slice(int start)

References System.Diagnostics.ActivityTraceId._hexString, System.Diagnostics.ActivityTraceId.CreateRandom(), System.BitConverter.IsLittleEndian, System.ReadOnlySpan< T >.Length, System.Buffers.Binary.BinaryPrimitives.ReverseEndianness(), System.ReadOnlySpan< T >.Slice(), System.HexConverter.ToString(), and System.Buffers.Text.Utf8Parser.TryParse().