code: public final Mono<T> singleOrEmpty() {
  	    if (this instanceof Callable) {
  		    @SuppressWarnings("unchecked")
  		    Callable<T> thiz = (Callable<T>)this;
  	        return convertToMono(thiz);
  	    }
  		return Mono.onAssembly(new MonoSingle<>(this, null, true));
  	}
docs: Expect and emit a single item from this {@link Flux} source, and accept an empty
  source but signal an {@link IndexOutOfBoundsException} for a source with more than
  one element.
  <p>
  <img class="marble" src="doc-files/marbles/singleOrEmpty.svg" alt="">
  
  @return a {@link Mono} with the expected single item, no item or an error