6 {
7 Span<ushort> span = stackalloc ushort[8];
8 span.Clear();
12 int item = tuple.longestSequenceStart;
13 int item2 = tuple.longestSequenceLength;
15 Span<char> span2 = stackalloc char[48];
16 span2[0] = '[';
17 int num = 1;
18 for (
int i = 0;
i < 8;
i++)
19 {
20 int charsWritten;
21 if (flag && i == 6)
22 {
23 span2[num++] = ':';
24 bool flag2 = (span[
i] >> 8).TryFormat(span2.Slice(num), out charsWritten);
25 num += charsWritten;
26 span2[num++] = '.';
27 flag2 = (span[
i] & 0xFF).TryFormat(span2.Slice(num), out charsWritten);
28 num += charsWritten;
29 span2[num++] = '.';
30 flag2 = (span[
i + 1] >> 8).TryFormat(span2.Slice(num), out charsWritten);
31 num += charsWritten;
32 span2[num++] = '.';
33 flag2 = (span[
i + 1] & 0xFF).TryFormat(span2.Slice(num), out charsWritten);
34 num += charsWritten;
35 break;
36 }
38 {
39 span2[num++] = ':';
40 }
41 if (
item <= i && item2 == 8)
42 {
43 span2[num++] = ':';
44 break;
45 }
46 if (
item > i || i >= item2)
47 {
48 if (i != 0)
49 {
50 span2[num++] = ':';
51 }
52 bool flag2 = span[
i].TryFormat(span2.Slice(num), out charsWritten,
"x");
53 num += charsWritten;
54 }
55 }
56 span2[num++] = ']';
57 return new string(span2.Slice(0, num));
58 }
static void Parse(ReadOnlySpan< char > address, Span< ushort > numbers, int start, ref string scopeId)
static bool IsLoopback(ReadOnlySpan< ushort > numbers)
static int longestSequenceStart
static bool ShouldHaveIpv4Embedded(ReadOnlySpan< ushort > numbers)
static int int longestSequenceLength FindCompressionRange(ReadOnlySpan< ushort > numbers)