code: public static Timer of(final Clock clock) {
  		requireNonNull(clock);
  		return clock instanceof NanoClock
  			? new Timer(System::nanoTime)
  			: new Timer(() -> nanos(clock));
  	}
docs: Return an new timer object which uses the given clock for measuring the
  execution time.
  
  @param clock the clock used for measuring the execution time
  @return a new timer