<PackageReference Include="System.Text.Encodings.Web" Version="10.0.0-preview.2.25163.2" />

Utf16Utility

static class Utf16Utility
using System.Runtime.CompilerServices; namespace System.Text.Unicode { internal static class Utf16Utility { [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static bool AllCharsInUInt32AreAscii(uint value) { return ((int)value & -8323200) == 0; } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static bool AllCharsInUInt64AreAscii(ulong value) { return ((long)value & -35747867511423104) == 0; } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static uint ConvertAllAsciiCharsInUInt32ToLowercase(uint value) { uint num = value + 8388736 - 4259905; uint num2 = value + 8388736 - 5963867; uint num3 = ((num ^ num2) & 8388736) >> 2; return value ^ num3; } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static uint ConvertAllAsciiCharsInUInt32ToUppercase(uint value) { uint num = value + 8388736 - 6357089; uint num2 = value + 8388736 - 8061051; uint num3 = ((num ^ num2) & 8388736) >> 2; return value ^ num3; } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static ulong ConvertAllAsciiCharsInUInt64ToUppercase(ulong value) { ulong num = value + 36029346783166592 - 27303489359118433; ulong num2 = value + 36029346783166592 - 34621950424449147; ulong num3 = ((num ^ num2) & 36029346783166592) >> 2; return value ^ num3; } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static ulong ConvertAllAsciiCharsInUInt64ToLowercase(ulong value) { ulong num = value + 36029346783166592 - 18296152663326785; ulong num2 = value + 36029346783166592 - 25614613728657499; ulong num3 = ((num ^ num2) & 36029346783166592) >> 2; return value ^ num3; } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static bool UInt32ContainsAnyLowercaseAsciiChar(uint value) { uint num = value + 8388736 - 6357089; uint num2 = value + 8388736 - 8061051; return ((num ^ num2) & 8388736) != 0; } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static bool UInt32ContainsAnyUppercaseAsciiChar(uint value) { uint num = value + 8388736 - 4259905; uint num2 = value + 8388736 - 5963867; return ((num ^ num2) & 8388736) != 0; } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static bool UInt32OrdinalIgnoreCaseAscii(uint valueA, uint valueB) { uint num = (valueA ^ valueB) << 2; uint num2 = valueA + 327685; num2 |= 10485920; num2 += 1703962; num2 = (uint)((int)num2 | -8388737); return (num & num2) == 0; } [MethodImpl(MethodImplOptions.AggressiveInlining)] internal static bool UInt64OrdinalIgnoreCaseAscii(ulong valueA, ulong valueB) { ulong num = (valueA ^ valueB) << 2; ulong num2 = valueA + 1407396358717445; num2 |= 45036683478958240; num2 += 7318461065330714; num2 = (ulong)((long)num2 | -36029346783166593); return (num & num2) == 0; } } }