private static bool TryGetFirstByteCodePointValue(byte first, out UnicodeCodePoint codePoint, out int encodedBytes)
{
if (!TryGetNumberOfEncodedBytesFromFirstByte(first, out encodedBytes))
{
codePoint = default(UnicodeCodePoint);
return false;
}
switch (encodedBytes)
{
case 1:
codePoint = (UnicodeCodePoint)(first & b0111_1111U);
return true;
case 2:
codePoint = (UnicodeCodePoint)(first & b0001_1111U);
return true;
case 3:
codePoint = (UnicodeCodePoint)(first & b0000_1111U);
return true;
case 4:
codePoint = (UnicodeCodePoint)(first & b0000_0111U);
return true;
default:
codePoint = default(UnicodeCodePoint);
encodedBytes = 0;
return false;
}
}