code: public static function from(Traversable $traversable) : Iterator
      {
          Preconditions::checkArgument($traversable instanceof Iterator || $traversable instanceof IteratorAggregate);
          return $traversable instanceof Iterator
              ? $traversable
              : Iterators::from($traversable->getIterator());
      }
docs: Returns an iterator for the given traversable.
  
  @param Traversable $traversable
  @return Iterator