DotNext by Roman Sakno

<PackageReference Include="DotNext" Version="3.1.0" />

 BufferWriter<T>

public abstract int Capacity { get; }

public int FreeCapacity { get; }

public T& modreq(System.Runtime.InteropServices.InAttribute) this[int index] { get; }

public int WrittenCount { get; }

public abstract ReadOnlyMemory<T> WrittenMemory { get; }

public void Add(T item)

public void AddAll(ICollection<T> items)

public void Advance(int count)

public abstract void Clear(bool reuseBuffer = false)

public abstract MemoryOwner<T> DetachBuffer()

public abstract Memory<T> GetMemory(int sizeHint = 0)

public virtual Span<T> GetSpan(int sizeHint = 0)