| @@ 7-31 (lines=25) @@ | ||
| 4 | ||
| 5 | use Collections\Iterable; |
|
| 6 | ||
| 7 | class LazyConcatIterable implements Iterable |
|
| 8 | { |
|
| 9 | use LazyIterableTrait; |
|
| 10 | ||
| 11 | /** |
|
| 12 | * @var Iterable |
|
| 13 | */ |
|
| 14 | private $iterable1; |
|
| 15 | ||
| 16 | /** |
|
| 17 | * @var Iterable |
|
| 18 | */ |
|
| 19 | private $iterable2; |
|
| 20 | ||
| 21 | public function __construct($iterable1, $iterable2) |
|
| 22 | { |
|
| 23 | $this->iterable1 = $iterable1; |
|
| 24 | $this->iterable2 = $iterable2; |
|
| 25 | } |
|
| 26 | ||
| 27 | public function getIterator() |
|
| 28 | { |
|
| 29 | return new LazyConcatIterator($this->iterable1->getIterator(), $this->iterable2->getIterator()); |
|
| 30 | } |
|
| 31 | } |
|
| 32 | ||
| @@ 7-31 (lines=25) @@ | ||
| 4 | ||
| 5 | use Collections\Iterable; |
|
| 6 | ||
| 7 | class LazyZipIterable implements Iterable |
|
| 8 | { |
|
| 9 | use LazyIterableTrait; |
|
| 10 | ||
| 11 | /** |
|
| 12 | * @var Iterable |
|
| 13 | */ |
|
| 14 | private $iterable1; |
|
| 15 | ||
| 16 | /** |
|
| 17 | * @var Iterable |
|
| 18 | */ |
|
| 19 | private $iterable2; |
|
| 20 | ||
| 21 | public function __construct($iterable1, $iterable2) |
|
| 22 | { |
|
| 23 | $this->iterable1 = $iterable1; |
|
| 24 | $this->iterable2 = $iterable2; |
|
| 25 | } |
|
| 26 | ||
| 27 | public function getIterator() |
|
| 28 | { |
|
| 29 | return new LazyZipIterator($this->iterable1->getIterator(), $this->iterable2->getIterator()); |
|
| 30 | } |
|
| 31 | } |
|
| 32 | ||