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);
            }
示例#3
0
 public static Rune FromUtf32(BitTwiddler bits, ByteOrder endianness = ByteOrder.LittleEndian) => new Rune(Utf32.Decoder.Decode(bits, endianness));
示例#4
0
 // Utf8
 public static Rune FromUtf8(BitTwiddler bits) => new Rune(Utf8.Decoder.Decode(bits));