def negotiate()

in runtime/src/main/scala/org/apache/pekko/grpc/internal/Codecs.scala [46:56]


  def negotiate(request: jm.HttpRequest): Codec = {
    val headers = extractHeaders(request)
    val accepted = `Message-Accept-Encoding`.findIn(headers)
    if (accepted.isEmpty) {
      Identity
    } else if (accepted.length == 1) {
      supportedByName.getOrElse(accepted.head, Identity)
    } else {
      accepted.collectFirst { case a if supportedByName.contains(a) => supportedByName(a) }.getOrElse(Identity)
    }
  }