public static CursorWritingContext StartWriting(MemoryCursor cursor, Range range)
        {
            var payloadContext = ExtensionLength.StartWriting(cursor);
            var vectorContext  = ByteVector.StartVectorWriting(cursor, range);

            return(new CursorWritingContext(payloadContext, vectorContext));
        }
        public static WritingContext StartWriting(ref Span <byte> destination, Range range)
        {
            var payloadContext = ExtensionLength.StartWriting(ref destination);
            var vectorContext  = ByteVector.StartVectorWriting(ref destination, range);

            return(new WritingContext(payloadContext, vectorContext));
        }
Ejemplo n.º 3
0
        public static ReadOnlyMemory <byte> SliceBytes(ReadOnlyMemory <byte> bytes, out ReadOnlyMemory <byte> remainings)
        {
            ExtensionType.Parse(bytes, out remainings);
            ExtensionLength.Slice(remainings, out remainings);

            return(bytes.Slice(0, bytes.Length - remainings.Length));
        }
        public static MemoryBuffer Slice(MemoryCursor cursor, Range range)
        {
            var payload = ExtensionLength.Slice(cursor);

            using (payload.SetCursor(cursor))
            {
                return(ByteVector.SliceVectorBytes(cursor, range));
            }
        }
        public static ReadOnlyMemory <byte> Slice(ReadOnlyMemory <byte> bytes, Range range, out ReadOnlyMemory <byte> afterPayloadBytes)
        {
            var payload     = ExtensionLength.Slice(bytes, out afterPayloadBytes);
            var vectorBytes = ByteVector.SliceVectorBytes(payload, range, out var afterVectorBytes);

            if (!afterVectorBytes.IsEmpty)
            {
                throw new EncodingException();
            }

            return(vectorBytes);
        }
Ejemplo n.º 6
0
 public static void SliceBytes(MemoryCursor cursor)
 {
     ExtensionType.Parse(cursor);
     ExtensionLength.Slice(cursor);
 }