From e9ea621b93fbb58d9edfca8375918791637bbd52 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 30 Dec 2020 20:59:04 +0800 Subject: +init --- .../Extensions/SpanExtensions.cs | 24 ++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 Impostor-dev/src/Impostor.Benchmarks/Extensions/SpanExtensions.cs (limited to 'Impostor-dev/src/Impostor.Benchmarks/Extensions/SpanExtensions.cs') diff --git a/Impostor-dev/src/Impostor.Benchmarks/Extensions/SpanExtensions.cs b/Impostor-dev/src/Impostor.Benchmarks/Extensions/SpanExtensions.cs new file mode 100644 index 0000000..8fbceeb --- /dev/null +++ b/Impostor-dev/src/Impostor.Benchmarks/Extensions/SpanExtensions.cs @@ -0,0 +1,24 @@ +using System; +using System.Buffers.Binary; +using System.Runtime.CompilerServices; + +namespace Impostor.Benchmarks.Extensions +{ + public static class SpanExtensions + { + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static Span ReadMessage(this Span input) + { + var length = BinaryPrimitives.ReadUInt16LittleEndian(input); + var tag = input[2]; + + return input.Slice(3, length); + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public static int ReadUInt16(this ref ReadOnlySpan input) + { + return BinaryPrimitives.ReadUInt16LittleEndian(input); + } + } +} -- cgit v1.1-26-g67d0