code: public static <F extends Future<Void>> Mono<Void> deferFutureWithContext(Function<Context, F> deferredFuture) {
  		return new DeferredContextFutureMono<>(deferredFuture);
  	}
docs: Convert a supplied {@link Future} for each subscriber into {@link Mono}.
  {@link Mono#subscribe(Subscriber)}
  will bridge to {@link Future#addListener(GenericFutureListener)}.
  
  In addition, current method allows interaction with downstream context, so it
  may be transferred to implicitly connected upstream
  
  Example:
  
  <pre><code>
  Flux&lt;String&gt; dataStream = Flux.just("a", "b", "c");
  FutureMono.deferFutureWithContext((subscriberContext) ->
  context().channel()
  .writeAndFlush(PublisherContext.withContext(dataStream, subscriberContext)));
  </code></pre>
  
  @param deferredFuture the future to evaluate and convert from
  @param <F> the future type
  
  @return A {@link Mono} forwarding {@link Future} success or failure