private static BitTwiddler Encode(uint value, bool reverse) { var result = BitTwiddler.FromInt((uint)value); if (reverse) { result = result.ReverseBytes(); } return(result); }
private static BitTwiddler Encode(uint value, bool reverse) { int units = FromUtf32(value, out ushort leadingSurrogate, out ushort trailingSurrogate); BitTwiddler result; if (units == 1) { result = BitTwiddler.FromShort(leadingSurrogate); } else { result = BitTwiddler.FromShorts(leadingSurrogate, trailingSurrogate); } if (reverse) { result = result.ReverseBytesInShorts(); } return(result); }
public static Rune FromUtf32(BitTwiddler bits, ByteOrder endianness = ByteOrder.LittleEndian) => new Rune(Utf32.Decoder.Decode(bits, endianness));
// Utf8 public static Rune FromUtf8(BitTwiddler bits) => new Rune(Utf8.Decoder.Decode(bits));