public static adapter ( Traversable $iterator ) : Pinq\Iterators\Generators\IGenerator | ||
$iterator | Traversable | |
return | Pinq\Iterators\Generators\IGenerator |
public static function adapter(\Traversable $iterator)
{
if ($iterator instanceof IGenerator) {
return $iterator;
} elseif ($iterator instanceof IIterator) {
return new IIteratorAdapter($iterator);
} elseif ($iterator instanceof \ArrayIterator) {
return new ArrayIteratorAdapter($iterator);
} elseif ($iterator instanceof \IteratorAggregate) {
return static::adapter($iterator->getIterator());
} else {
return new IteratorAdapter($iterator);
}
}
public function setAll(\Traversable $elements) { $elements = GeneratorScheme::adapter($elements); foreach ($elements as $key => &$value) { $this->setRef($key, $value); } }