Use ReadOnlyMemory<byte> for binary data to eliminate UTF-16 transcoding (#1070)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com> Co-authored-by: ericstj <8918108+ericstj@users.noreply.github.com> Co-authored-by: Eric StJohn <ericstj@microsoft.com>
This commit is contained in:
parent
a3ce9e9606
commit
80b1ad21d7
1 changed files with 400 additions and 103 deletions
|
|
@ -27,4 +27,25 @@ internal static class DebuggerDisplayHelper
|
|||
|
||||
return "invalid base64";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Gets the decoded length of base64 data encoded as UTF-8 bytes for debugger display.
|
||||
/// </summary>
|
||||
internal static string GetBase64LengthDisplay(ReadOnlyMemory<byte> base64Data)
|
||||
{
|
||||
#if NET
|
||||
if (System.Buffers.Text.Base64.IsValid(base64Data.Span, out int decodedLength))
|
||||
{
|
||||
return $"{decodedLength} bytes";
|
||||
}
|
||||
#else
|
||||
try
|
||||
{
|
||||
return $"{Convert.FromBase64String(System.Text.Encoding.UTF8.GetString(base64Data.ToArray())).Length} bytes";
|
||||
}
|
||||
catch { }
|
||||
#endif
|
||||
|
||||
return "invalid base64";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue