code: public static Mono<Void> disposableWriteAndFlush(Channel channel,
  			Publisher<?> dataStream) {
  		return new DeferredWriteMono(channel, dataStream);
  	}
docs: Write the passed {@link Publisher} and return a disposable {@link Mono}.
  <p>
  In addition, current method allows interaction with downstream context, so it
  may be transferred to implicitly connected upstream
  <p>
  Example:
  <p>
  <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 dataStream the publisher to write
  
  @return A {@link Mono} forwarding {@link Future} success, failure and cancel