DotNext by Roman Sakno

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

 MemoryOwner<T>

public bool IsEmpty { get; }

public ref T this[int index] { get; }

public int Length { get; }

public Memory<T> Memory { get; }

public MemoryOwner(ArrayPool<T> pool, int length)

public MemoryOwner(MemoryPool<T> pool, int length = -1)

public MemoryOwner(Func<int, IMemoryOwner<T>> provider, int length)

public MemoryOwner(Func<IMemoryOwner<T>> provider)

public MemoryOwner(T[] array, int length)

public MemoryOwner(T[] array)

public void Dispose()