namespace EcsRx.Pools { public interface IPool { /// /// The size to expand the pool by if needed /// int IncrementSize { get; } /// /// Allocates an instance in the pool for use /// /// An instance to use T AllocateInstance(); /// /// Frees up the pooled item for re-allocation /// /// The instance to put back in the pool void ReleaseInstance(T obj); } }