code: @NotNull
      public static <T> Stream<T> of(@NotNull Iterable<? extends T> iterable) {
          Objects.requireNonNull(iterable);
          return new Stream<T>(iterable);
      }
docs: Creates a {@code Stream} from any class that implements {@code Iterable} interface.
  
  @param <T> the type of the stream elements
  @param iterable  the {@code Iterable} with elements to be passed to stream
  @return the new stream
  @throws NullPointerException if {@code iterable} is null