@Nonnull
    static <U> Promise<U> wrapFuture(@Nonnull Future<U> future) {
        return HelperPromise.wrapFuture(future);
    }
Returns a Promise which represents the given future.

<p>The implementation will make an attempt to wrap the future without creating a new process
to await the result (by casting to {@link java.util.concurrent.CompletionStage} or
{@link com.google.common.util.concurrent.ListenableFuture}).</p>

<p>Calls to {@link #cancel() cancel} the returned promise will not affected the wrapped
future.</p>

@param future the future to wrap
@param <U> the result type
@return the new promise
helper/src/main/java/me/lucko/helper/promise/Promise.java