32 lines
911 B
C#
32 lines
911 B
C#
// Copyright (c) All contributors. All rights reserved.
|
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
|
|
using System;
|
|
using System.Diagnostics;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
|
|
namespace MessagePack
|
|
{
|
|
internal static class StringEncoding
|
|
{
|
|
internal static readonly Encoding UTF8 = new UTF8Encoding(false);
|
|
|
|
#if !NETCOREAPP // Define the extension method only where an instance method does not already exist.
|
|
internal static unsafe string GetString(this Encoding encoding, ReadOnlySpan<byte> bytes)
|
|
{
|
|
if (bytes.Length == 0)
|
|
{
|
|
return string.Empty;
|
|
}
|
|
|
|
fixed (byte* pBytes = bytes)
|
|
{
|
|
return encoding.GetString(pBytes, bytes.Length);
|
|
}
|
|
}
|
|
#endif
|
|
}
|
|
}
|