public static void ReuseArrayWriter() { using var writer = new PooledArrayBufferWriter <byte>(); var span = writer.GetSpan(10); span[0] = 20; span[9] = 30; writer.Advance(10); writer.Clear(); span = writer.GetSpan(10); span[0] = 40; span[9] = 50; writer.Advance(10); Equal(40, writer.WrittenMemory.Span[0]); Equal(50, writer.WrittenMemory.Span[9]); }
public static void StreamInterop() { using var writer = new PooledArrayBufferWriter <byte>(); var span = writer.GetSpan(10); new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }.AsSpan().CopyTo(span); writer.Advance(10); using var stream = StreamSource.GetWrittenBytesAsStream(writer); True(stream.CanRead); False(stream.CanWrite); Equal(0, stream.Position); Equal(10, stream.Length); var buffer = new byte[10]; Equal(10, stream.Read(buffer, 0, 10)); for (var i = 0; i < buffer.Length; i++) { Equal(i, buffer[i]); } }