<PackageReference Include="Azure.Storage.Blobs" Version="12.25.1" />

BufferExtensions

static class BufferExtensions
using System; using System.Buffers; namespace Azure.Storage { internal static class BufferExtensions { private class DisposableRentedArray<T> : IDisposable { private ArrayPool<T> _pool; private T[] _rentedArray; public DisposableRentedArray(ArrayPool<T> pool, T[] rentedArray) { _pool = pool; _rentedArray = rentedArray; } public void Dispose() { _pool.Return(_rentedArray, false); } } public static IDisposable RentDisposable<T>(this ArrayPool<T> pool, int minimumLength, out T[] array) { array = pool.Rent(minimumLength); return new DisposableRentedArray<T>(pool, array); } public static IDisposable RentAsMemoryDisposable<T>(this ArrayPool<T> pool, int minimumLength, out Memory<T> memory) { if (minimumLength == 0) { memory = Memory<T>.Empty; return null; } T[] array; IDisposable result = pool.RentDisposable(minimumLength, out array); memory = new Memory<T>(array, 0, minimumLength); return result; } public static IDisposable RentAsSpanDisposable<T>(this ArrayPool<T> pool, int minimumLength, out Span<T> span) { if (minimumLength == 0) { span = Span<T>.Empty; return null; } T[] array; IDisposable result = pool.RentDisposable(minimumLength, out array); span = new Span<T>(array, 0, minimumLength); return result; } public static T[] Clear<T>(this T[] array) { for (int i = 0; i < array.Length; i++) { array[i] = default(T); } return array; } } }