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)); }
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); }
public static void SliceBytes(MemoryCursor cursor) { ExtensionType.Parse(cursor); ExtensionLength.Slice(cursor); }