bool Common::hasConnectProtocolVersionHeader(const Http::RequestOrResponseHeaderMap& headers) {
bool Common::hasConnectStreamingContentType(const Http::RequestOrResponseHeaderMap& headers) {
// Consider the request a connect request if the content type starts with "application/connect+".
bool Common::isGrpcResponseHeaders(const Http::ResponseHeaderMap& headers, bool end_stream) {
Common::getGrpcStatus(const Http::ResponseHeaderOrTrailerMap& trailers, bool allow_user_defined) {
absl::optional<Status::GrpcStatus> Common::getGrpcStatus(const Http::ResponseTrailerMap& trailers,
// request. When it is returned, it will be in the response trailers. With that said, Envoy will
auto decoded_value = Base64::decodeWithoutPadding(details_header[0]->value().getStringView());
// NB: we do not use prependGrpcFrameHeader because that would add another BufferFragment and this