code: @CheckReturnValue
      @SchedulerSupport(SchedulerSupport.NONE)
      public static <T, S> Observable<T> generate(Callable<S> initialState, final BiConsumer<S, Emitter<T>> generator) {
          ObjectHelper.requireNonNull(generator, "generator  is null");
          return generate(initialState, ObservableInternalHelper.simpleBiGenerator(generator), Functions.emptyConsumer());
      }
docs: Returns a cold, synchronous and stateful generator of values.
  <p>
  <img width="640" height="315" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/generate.2.png" alt="">
  <dl>
  <dt><b>Scheduler:</b></dt>
  <dd>{@code generate} does not operate by default on a particular {@link Scheduler}.</dd>
  </dl>
  
  @param <S> the type of the per-Observer state
  @param <T> the generated value type
  @param initialState the Callable to generate the initial state for each Observer
  @param generator the Consumer called with the current state whenever a particular downstream Observer has
  requested a value. The callback then should call {@code onNext}, {@code onError} or
  {@code onComplete} to signal a value or a terminal event. Signalling multiple {@code onNext}
  in a call will make the operator signal {@code IllegalStateException}.
  @return the new Observable instance