code: public static <T> Stream<T> stream(final Iterable<T> source) {
          return new Stream<T>() {
              @Override
              public Iterator<T> iterator() {
                  return source.iterator();
              }
          };
      }
docs: Converts a source {@link Iterable} into a {@link Stream}.
  
  @param source a source {@link Iterable} to convert.
  @param <T>    a type of stream items
  @return a {@link Stream} that represents source {@link Iterable} elements