protected function &iteratorGenerator(IGenerator $iterator)
{
$start = $this->startPosition;
$end = $this->endPosition;
$position = 0;
foreach ($iterator as $key => &$value) {
if ($end !== null && $position >= $end) {
break;
} elseif ($position >= $start) {
(yield $key => $value);
}
$position++;
}
}