code: public Retryer<R> timeout(final TimeLimiter timeLimiter, final long duration, final TimeUnit timeUnit) {
          return withTimelimiter(new AttemptTimelimit<R>() {
  
              @Override public R call(Callable<R> callable) throws Exception {
                  return checkNotNull(timeLimiter, "TimeLimiter cannot be null")
                          .callWithTimeout(callable, duration, checkNotNull(timeUnit), true);
              }
          });
      }
docs: Timing out after the specified time limit with {@link TimeLimiter}
  
  @param timeLimiter
  @param duration
  @param timeUnit
  @return