-
-
Notifications
You must be signed in to change notification settings - Fork 0
GeneratorRewindableIterator
An iterator that allows rewinding over a generator by caching its values.
This class wraps a generator or a closure returning a generator, enabling multiple iterations over the generated sequence by caching its results.
- Full name:
\FastForward\Iterator\GeneratorRewindableIterator - Parent class:
\FastForward\Iterator\CountableIterator
Initializes the GeneratorRewindableIterator with a generator or a closure returning a generator.
public __construct(\Closure|\Generator $generator): mixedParameters:
| Parameter | Type | Description |
|---|---|---|
$generator |
\Closure|\Generator | a generator instance or a callable that returns a generator |
Rewinds the iterator to the beginning.
public rewind(): voidThis method creates a new IteratorIterator instance wrapping the
GeneratorCachingIteratorAggregate, ensuring that the generator can be reused.
Retrieves the current element from the iterator.
public current(): mixedReturn Value:
the current element
Retrieves the key of the current element.
public key(): mixedReturn Value:
the key associated with the current element
Advances the iterator to the next element.
public next(): voidChecks if the current iterator position is valid.
public valid(): boolReturn Value:
true if the current position is valid, false otherwise
Counts the number of elements available in the iterator.
public count(): intThis method MUST count the elements by iterating over a clone of the current iterator instance so that the active iterator state of the original object is not modified during the counting process. Concrete implementations SHOULD therefore remain safely cloneable whenever this behavior is expected to be used.
Return Value:
the total number of elements exposed by the iterator