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