private static Int64 ReadFast(ref MessagePackReader reader, ref byte position)
        {
            var value = Unsafe.AddByteOffset(ref position, (IntPtr)1);

            reader.AdvanceWithinSpan(2);
            return(value);
        }
        private static Double ReadFast(ref MessagePackReader reader, ref byte position)
        {
            var value = new Float64Bits(ref position).Value;

            reader.AdvanceWithinSpan(9);
            return(value);
        }
Exemple #3
0
        public sbyte ReadFast(ref MessagePackReader reader, ref byte position)
        {
            var value = unchecked ((sbyte)Unsafe.AddByteOffset(ref position, (IntPtr)1));

            reader.AdvanceWithinSpan(2);
            return(value);
        }
        private static Int64 ReadFast(ref MessagePackReader reader, ref byte position)
        {
            IntPtr offset = (IntPtr)1;
            var    value  = (Unsafe.AddByteOffset(ref position, offset) << 8) | Unsafe.AddByteOffset(ref position, offset + 1);

            reader.AdvanceWithinSpan(3);
            return(value);
        }
        private static String ReadFast(ref MessagePackReader reader, ref byte position)
        {
            var length    = (int)Unsafe.AddByteOffset(ref position, (IntPtr)1);
            var valueSpan = reader.PeekFast(2, length);

            reader.AdvanceWithinSpan(length + 2);
            return(EncodingUtils.ToString(valueSpan));
        }
        private static String ReadFast(ref MessagePackReader reader, byte position)
        {
            var length    = position & 0x1F;
            var valueSpan = reader.PeekFast(1, length);

            reader.AdvanceWithinSpan(length + 1);
            return(EncodingUtils.ToString(valueSpan));
        }
        private static Int16 ReadFast(ref MessagePackReader reader, ref byte position)
        {
            IntPtr offset = (IntPtr)1;
            var    value  = checked ((short)((Unsafe.AddByteOffset(ref position, offset) << 8) + Unsafe.AddByteOffset(ref position, offset + 1)));

            reader.AdvanceWithinSpan(3);
            return(value);
        }
Exemple #8
0
        private static ExtensionResult ReadFast(ref MessagePackReader reader, ref byte position)
        {
            var typeCode  = unchecked ((sbyte)Unsafe.AddByteOffset(ref position, (IntPtr)1));
            var valueSpan = reader.PeekFast(2, 1);

            reader.AdvanceWithinSpan(3);
            return(new ExtensionResult(typeCode, valueSpan));
        }
Exemple #9
0
        private static ExtensionResult ReadFast(ref MessagePackReader reader, ref byte position)
        {
            IntPtr offset   = (IntPtr)1;
            var    length   = Unsafe.AddByteOffset(ref position, offset);                        // pos 1
            var    typeCode = unchecked ((sbyte)Unsafe.AddByteOffset(ref position, offset + 1)); // pos 2

            if (0u >= length)
            {
                reader.AdvanceWithinSpan(3);
                return(new ExtensionResult(typeCode, ReadOnlySpan <byte> .Empty));
            }

            var valueSpan = reader.PeekFast(3, length);

            reader.AdvanceWithinSpan(length + 3);
            return(new ExtensionResult(typeCode, valueSpan));
        }
Exemple #10
0
        private static void ReadFast(ref MessagePackReader reader, ref byte position)
        {
            IntPtr offset = (IntPtr)1;
            var    length = unchecked (
                (Unsafe.AddByteOffset(ref position, offset) << 8) |
                Unsafe.AddByteOffset(ref position, offset + 1));

            reader.AdvanceWithinSpan(length + 3);
        }
        private static byte[] ReadFast(ref MessagePackReader reader, ref byte position)
        {
            IntPtr offset = (IntPtr)1;

            var length = Unsafe.AddByteOffset(ref position, offset);

            if (0u >= length)
            {
                reader.AdvanceWithinSpan(2);
                return(MessagePackBinary.Empty);
            }

            var newBytes = new byte[length];

            MessagePackBinary.CopyMemory(ref Unsafe.AddByteOffset(ref position, offset + 1), ref newBytes[0], length);
            reader.AdvanceWithinSpan(length + 2);
            return(newBytes);
        }
        private static String ReadFast(ref MessagePackReader reader, ref byte position)
        {
            IntPtr offset    = (IntPtr)1;
            var    length    = unchecked ((Unsafe.AddByteOffset(ref position, offset) << 8) + Unsafe.AddByteOffset(ref position, offset + 1));
            var    valueSpan = reader.PeekFast(3, length);

            reader.AdvanceWithinSpan(length + 3);
            return(EncodingUtils.ToString(valueSpan));
        }
Exemple #13
0
        private static uint ReadFast(ref MessagePackReader reader, ref byte position)
        {
            IntPtr offset = (IntPtr)1;

            unchecked
            {
                var value =
                    Unsafe.AddByteOffset(ref position, offset) << 8 |
                        Unsafe.AddByteOffset(ref position, offset + 1);
                reader.AdvanceWithinSpan(3);
                return((uint)value);
            }
        }
        private static byte[] ReadFast(ref MessagePackReader reader, ref byte position)
        {
            IntPtr offset = (IntPtr)1;

            var length = unchecked (
                Unsafe.AddByteOffset(ref position, offset) << 8 |
                    Unsafe.AddByteOffset(ref position, offset + 1));

            var newBytes = new byte[length];

            MessagePackBinary.CopyMemory(ref Unsafe.AddByteOffset(ref position, offset + 2), ref newBytes[0], length);
            reader.AdvanceWithinSpan(length + 3);
            return(newBytes);
        }
Exemple #15
0
        private static DateTime ReadFast(ref MessagePackReader reader, ref byte position)
        {
            IntPtr offset = (IntPtr)1;

            var typeCode = unchecked ((sbyte)Unsafe.AddByteOffset(ref position, offset));

            if (typeCode != ReservedMessagePackExtensionTypeCode.DateTime)
            {
                ThrowHelper.ThrowInvalidOperationException_TypeCode(typeCode);
            }

            unchecked
            {
                var seconds =
                    (UInt32)(Unsafe.AddByteOffset(ref position, offset + 1) << 24) |
                    (UInt32)(Unsafe.AddByteOffset(ref position, offset + 2) << 16) |
                    (UInt32)(Unsafe.AddByteOffset(ref position, offset + 3) << 8) |
                    (UInt32)Unsafe.AddByteOffset(ref position, offset + 4);

                reader.AdvanceWithinSpan(6);
                return(DateTimeConstants.UnixEpoch.AddSeconds(seconds));
            }
        }
Exemple #16
0
        private static void ReadFast(ref MessagePackReader reader, ref byte position)
        {
            var length = Unsafe.AddByteOffset(ref position, (IntPtr)1);

            reader.AdvanceWithinSpan(length + 2);
        }