// Path: src/main/java/org/simondean/vertx/async/Retry.java
// public interface Retry<T> {
//   void run(AsyncResultHandler<T> handler);
// }
// 
// Path: src/main/java/org/simondean/vertx/async/RetryTimesBuilder.java
// public interface RetryTimesBuilder<T> {
//   Retry<T> times(int times);
// }


import org.simondean.vertx.async.Retry;
import org.simondean.vertx.async.RetryTimesBuilder;
import org.vertx.java.core.AsyncResultHandler;
import java.util.function.Consumer;
package org.simondean.vertx.async.internal;



public class RetryTimesBuilderImpl<T> implements RetryTimesBuilder<T> {
  private final Consumer<AsyncResultHandler<T>> task;

  public RetryTimesBuilderImpl(Consumer<AsyncResultHandler<T>> task) {
    this.task = task;
  }

  @Override
// Path: src/main/java/org/simondean/vertx/async/Retry.java
// public interface Retry<T> {
//   void run(AsyncResultHandler<T> handler);
// }
// 
// Path: src/main/java/org/simondean/vertx/async/RetryTimesBuilder.java
// public interface RetryTimesBuilder<T> {
//   Retry<T> times(int times);
// }


// Path: src/main/java/org/simondean/vertx/async/internal/RetryTimesBuilderImpl.java
import org.simondean.vertx.async.Retry;
import org.simondean.vertx.async.RetryTimesBuilder;
import org.vertx.java.core.AsyncResultHandler;
import java.util.function.Consumer;

package org.simondean.vertx.async.internal;



public class RetryTimesBuilderImpl<T> implements RetryTimesBuilder<T> {
  private final Consumer<AsyncResultHandler<T>> task;

  public RetryTimesBuilderImpl(Consumer<AsyncResultHandler<T>> task) {
    this.task = task;
  }

  @Override
  public Retry<T> times(int times) {