public function iterate(IterableResult $iterator, callable $callback = null)
{
$iteration = 0;
foreach ($iterator as $object) {
$object = current($object);
(yield $object);
if ($callback !== null) {
call_user_func($callback, $iteration, $object);
}
$iteration++;
}
}