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 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)); }
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, 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)); }
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)); }