code: @CheckReturnValue
      @BackpressureSupport(BackpressureKind.PASS_THROUGH)
      @SchedulerSupport(SchedulerSupport.NONE) // Supplied scheduler is only used for creating timestamps.
      public final Flowable<Timed<T>> timestamp(final TimeUnit unit, final Scheduler scheduler) {
          ObjectHelper.requireNonNull(unit, "unit is null");
          ObjectHelper.requireNonNull(scheduler, "scheduler is null");
          return map(Functions.<T>timestampWith(unit, scheduler));
      }
docs: Returns a Flowable that emits each item emitted by the source Publisher, wrapped in a
  {@link Timed} object whose timestamps are provided by a specified Scheduler.
  <p>
  <img width="640" height="310" src="https://raw.github.com/wiki/ReactiveX/RxJava/images/rx-operators/timestamp.s.png" alt="">
  <dl>
  <dt><b>Backpressure:</b></dt>
  <dd>The operator doesn't interfere with backpressure which is determined by the source {@code Publisher}'s backpressure
  behavior.</dd>
  <dt><b>Scheduler:</b></dt>
  <dd>This operator does not operate on any particular scheduler but uses the current time
  from the specified {@link Scheduler}.</dd>
  </dl>
  
  @param unit the time unit for the current time
  @param scheduler
  the {@link Scheduler} to use as a time source
  @return a Flowable that emits timestamped items from the source Publisher with timestamps provided by
  the {@code scheduler}
  @see <a href="http://reactivex.io/documentation/operators/timestamp.html">ReactiveX operators documentation: Timestamp</a>