namespace FlappyBird.Gameplay.Pipes
{
///
/// Contract for the pipe-pair pool service.
///
public interface IPipePool
{
///
/// Pre-warms the pool. Must be called after the container is fully built
/// (i.e. from IInitializable.Initialize) to avoid circular dependency.
///
void Initialize();
/// Returns a PipeView from the pool, expanding it if necessary.
PipeView Get();
/// Returns a PipeView back to the pool.
void Return(PipeView pipe);
}
}