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

◆ TryReadUnknownPercentEncodedAlpnProtocolName()

static bool System.Net.Http.Headers.AltSvcHeaderParser.TryReadUnknownPercentEncodedAlpnProtocolName ( ReadOnlySpan< char > value,
[NotNullWhen(true)] out string result )
inlinestaticprivate

Definition at line 200 of file AltSvcHeaderParser.cs.

201 {
202 int num = value.IndexOf('%');
203 if (num == -1)
204 {
205 result = new string(value);
206 return true;
207 }
208 Span<char> initialBuffer = ((value.Length > 128) ? ((Span<char>)new char[value.Length]) : stackalloc char[128]);
209 System.Text.ValueStringBuilder valueStringBuilder = new System.Text.ValueStringBuilder(initialBuffer);
210 do
211 {
212 if (num != 0)
213 {
214 valueStringBuilder.Append(value.Slice(0, num));
215 }
216 if (value.Length - num < 3 || !TryReadAlpnHexDigit(value[1], out var nibble) || !TryReadAlpnHexDigit(value[2], out var nibble2))
217 {
218 result = null;
219 return false;
220 }
221 valueStringBuilder.Append((char)((nibble << 8) | nibble2));
222 value = value.Slice(num + 3);
223 num = value.IndexOf('%');
224 }
225 while (num != -1);
226 if (value.Length != 0)
227 {
228 valueStringBuilder.Append(value);
229 }
230 result = valueStringBuilder.ToString();
231 return true;
232 }
static bool TryReadAlpnHexDigit(char ch, out int nibble)

References System.Text.ValueStringBuilder.Append(), System.Text.ValueStringBuilder.ToString(), System.Net.Http.Headers.AltSvcHeaderParser.TryReadAlpnHexDigit(), and System.value.

Referenced by System.Net.Http.Headers.AltSvcHeaderParser.TryReadPercentEncodedAlpnProtocolName().