namespace System.Buffers; public abstract class MemoryPool : IDisposable { private static readonly MemoryPool s_shared = new System.Buffers.ArrayMemoryPool(); public static MemoryPool Shared => s_shared; public abstract int MaxBufferSize { get; } public abstract IMemoryOwner Rent(int minBufferSize = -1); public void Dispose() { Dispose(disposing: true); GC.SuppressFinalize(this); } protected abstract void Dispose(bool disposing); }