docs: public static <A> CompletionHandler<Void, A> createAsyncHandler(final Consumer<A> success, final BiConsumer<Throwable, A> fail) {
          return new CompletionHandler<Void, A>() {
              @Override
              public void completed(Void result, A attachment) {
                  if (success != null) success.accept(attachment);
              }
  
              @Override
              public void failed(Throwable exc, A attachment) {
                  if (fail != null) fail.accept(exc, attachment);
              }
          };
      }