namespace Zenject { // Zero parameters public class PoolableMemoryPool : MemoryPool where TValue : IPoolable { protected override void OnDespawned(TValue item) { item.OnDespawned(); } protected override void Reinitialize(TValue item) { item.OnSpawned(); } } // One parameters public class PoolableMemoryPool : MemoryPool where TValue : IPoolable { protected override void OnDespawned(TValue item) { item.OnDespawned(); } protected override void Reinitialize(TParam1 p1, TValue item) { item.OnSpawned(p1); } } // Two parameters public class PoolableMemoryPool : MemoryPool where TValue : IPoolable { protected override void OnDespawned(TValue item) { item.OnDespawned(); } protected override void Reinitialize(TParam1 p1, TParam2 p2, TValue item) { item.OnSpawned(p1, p2); } } // Three parameters public class PoolableMemoryPool : MemoryPool where TValue : IPoolable { protected override void OnDespawned(TValue item) { item.OnDespawned(); } protected override void Reinitialize(TParam1 p1, TParam2 p2, TParam3 p3, TValue item) { item.OnSpawned(p1, p2, p3); } } // Four parameters public class PoolableMemoryPool : MemoryPool where TValue : IPoolable { protected override void OnDespawned(TValue item) { item.OnDespawned(); } protected override void Reinitialize(TParam1 p1, TParam2 p2, TParam3 p3, TParam4 p4, TValue item) { item.OnSpawned(p1, p2, p3, p4); } } // Five parameters public class PoolableMemoryPool : MemoryPool where TValue : IPoolable { protected override void OnDespawned(TValue item) { item.OnDespawned(); } protected override void Reinitialize(TParam1 p1, TParam2 p2, TParam3 p3, TParam4 p4, TParam5 p5, TValue item) { item.OnSpawned(p1, p2, p3, p4, p5); } } // Six parameters public class PoolableMemoryPool : MemoryPool where TValue : IPoolable { protected override void OnDespawned(TValue item) { item.OnDespawned(); } protected override void Reinitialize(TParam1 p1, TParam2 p2, TParam3 p3, TParam4 p4, TParam5 p5, TParam6 p6, TValue item) { item.OnSpawned(p1, p2, p3, p4, p5, p6); } } // Seven parameters public class PoolableMemoryPool : MemoryPool where TValue : IPoolable { protected override void OnDespawned(TValue item) { item.OnDespawned(); } protected override void Reinitialize(TParam1 p1, TParam2 p2, TParam3 p3, TParam4 p4, TParam5 p5, TParam6 p6, TParam7 p7, TValue item) { item.OnSpawned(p1, p2, p3, p4, p5, p6, p7); } } // Eight parameters public class PoolableMemoryPool : MemoryPool where TValue : IPoolable { protected override void OnDespawned(TValue item) { item.OnDespawned(); } protected override void Reinitialize(TParam1 p1, TParam2 p2, TParam3 p3, TParam4 p4, TParam5 p5, TParam6 p6, TParam7 p7, TParam8 p8, TValue item) { item.OnSpawned(p1, p2, p3, p4, p5, p6, p7, p8); } } }