DotNext by Roman Sakno

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

 ArrayRental<T>

public bool IsEmpty { get; }

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

public int Length { get; }

public Memory<T> Memory { get; }

public MemoryOwner<T> Owner { get; }

public ArraySegment<T> Segment { get; }

public Span<T> Span { get; }

public ArrayRental(ArrayPool<T> pool, int minimumLength, bool clearArray)

public ArrayRental(ArrayPool<T> pool, int minimumLength)

public ArrayRental(int minimumLength, bool clearArray)

public ArrayRental(int minimumLength)

public ArrayRental(T[] array, int length)

public ArrayRental(T[] array)

public static MemoryOwner<T> op_Implicit(ref ArrayRental array)

public void Clear()

public void Dispose()

public ref T GetPinnableReference()