1
0
mirror of https://github.com/danog/amp.git synced 2024-12-11 17:09:40 +01:00
amp/lib/Iterator.php
Aaron Piotrowski 835e617054 More stream → iterator
Hopefully that's all of them…
2017-05-02 07:07:43 +02:00

30 lines
1007 B
PHP

<?php
namespace Amp;
/**
* Defines an asynchronous iterator over a set of values that is designed to be used within a coroutine.
*/
interface Iterator {
/**
* Succeeds with true if an emitted value is available by calling getCurrent() or false if the iterator has
* resolved. If the iterator fails, the returned promise will fail with the same exception.
*
* @return \Amp\Promise<bool>
*
* @throws \Error If the prior promise returned from this method has not resolved.
* @throws \Throwable The exception used to fail the iterator.
*/
public function advance(): Promise;
/**
* Gets the last emitted value or throws an exception if the iterator has completed.
*
* @return mixed Value emitted from the iterator.
*
* @throws \Error If the iterator has resolved or advance() was not called before calling this method.
* @throws \Throwable The exception used to fail the iterator.
*/
public function getCurrent();
}