code: static Mono<Object> decode(HttpResponse httpResponse, SerializerAdapter serializer, HttpResponseDecodeData decodeData) {
          Type headerType = decodeData.headersType();
          if (headerType == null) {
              return Mono.empty();
          } else {
              return Mono.defer(() -> {
                  try {
                      return Mono.just(deserializeHeaders(httpResponse.headers(), serializer, decodeData));
                  } catch (IOException e) {
                      return Mono.error(new HttpRequestException("HTTP response has malformed headers", httpResponse, e));
                  }
              });
          }
      }
docs: Decode headers of the http response.
  
  The decoding happens when caller subscribed to the returned {@code Mono<Object>},
  if the response header is not decodable then {@code Mono.empty()} will be returned.
  
  @param httpResponse the response containing the headers to be decoded
  @param serializer the adapter to use for decoding
  @param decodeData the necessary data required to decode a Http response
  @return publisher that emits decoded response header upon subscription if header is decodable,
  no emission if the header is not-decodable