template <envoy_dynamic_module_type_http_body_type Type> class BodyBufferImpl : public BodyBuffer {
template <envoy_dynamic_module_type_http_header_type Type> class HeaderMapImpl : public HeaderMap {
std::string_view getSingleHeader(std::string_view key, size_t index, size_t* value_count) const {
using RequestTrailers = HeaderMapImpl<envoy_dynamic_module_type_http_header_type_RequestTrailer>;
using ResponseHeaders = HeaderMapImpl<envoy_dynamic_module_type_http_header_type_ResponseHeader>;
using ResponseTrailers = HeaderMapImpl<envoy_dynamic_module_type_http_header_type_ResponseTrailer>;
bool addMetadataList(std::string_view ns, std::string_view key, std::string_view value) override {
std::optional<std::string_view> getMetadataListString(std::string_view ns, std::string_view key,
bool sendHttpStreamData(uint64_t stream_id, std::string_view body, bool end_of_stream) override {
bool sendHttpStreamTrailers(uint64_t stream_id, std::span<const HeaderView> trailers) override {
void clearDownstreamWatermarkCallbacks() override { downstream_watermark_callbacks_ = nullptr; }
bool sendHttpStreamData(uint64_t stream_id, std::string_view body, bool end_of_stream) override {
bool sendHttpStreamTrailers(uint64_t stream_id, std::span<const HeaderView> trailers) override {
envoy_dynamic_module_callback_http_filter_config_reset_http_stream(host_config_ptr_, stream_id);
envoy_dynamic_module_type_http_filter_config_module_ptr filter_config_ptr, uint64_t callout_id,
envoy_dynamic_module_type_http_filter_config_module_ptr filter_config_ptr, uint64_t stream_id) {
envoy_dynamic_module_type_http_filter_config_module_ptr filter_config_ptr, uint64_t event_id) {