docs: public final Object handleRestReturnType(Mono<HttpDecodedResponse> asyncHttpDecodedResponse, final SwaggerMethodParser methodParser, final Type returnType) {
          final Mono<HttpDecodedResponse> asyncExpectedResponse = ensureExpectedStatus(asyncHttpDecodedResponse, methodParser);
          final Object result;
          if (TypeUtil.isTypeOrSubTypeOf(returnType, Mono.class)) {
              final Type monoTypeParam = TypeUtil.getTypeArgument(returnType);
              if (TypeUtil.isTypeOrSubTypeOf(monoTypeParam, Void.class)) {
                  // ProxyMethod ReturnType: Mono<Void>
                  result = asyncExpectedResponse.then();
              } else {
                  // ProxyMethod ReturnType: Mono<? extends RestResponseBase<?, ?>>
                  result = asyncExpectedResponse.flatMap(response ->
                          handleRestResponseReturnType(response, methodParser, monoTypeParam));
              }
          } else if (FluxUtil.isFluxByteBuf(returnType)) {
              // ProxyMethod ReturnType: Flux<ByteBuf>
              result = asyncExpectedResponse.flatMapMany(ar -> ar.sourceResponse().body());
          } else if (TypeUtil.isTypeOrSubTypeOf(returnType, void.class) || TypeUtil.isTypeOrSubTypeOf(returnType, Void.class)) {
              // ProxyMethod ReturnType: Void
              asyncExpectedResponse.block();
              result = null;
          } else {
              // ProxyMethod ReturnType: T where T != async (Mono, Flux) or sync Void
              // Block the deserialization until a value T is received
              result = asyncExpectedResponse
                      .flatMap(httpResponse -> handleRestResponseReturnType(httpResponse, methodParser, returnType))
                      .block();
          }
          return result;
      }