static inline ActionMatchResult evaluateMatch(MatchTree<DataType>& match_tree, const DataType& data,
template <class DataType> using FieldMatcherFactoryCb = std::function<FieldMatcherPtr<DataType>()>;
DataInputFactoryCb<DataType> createDataInput(const xds::core::v3::TypedExtensionConfig& config) {
DataInputGetResult get(const DataType&) const override { return common_protocol_input_->get(); }
template <class MatcherType> MatchTreeFactoryCb<DataType> create(const MatcherType& config) {
createOnMatch(const envoy::config::common::matcher::v3::Matcher::OnMatch& on_match) override {
FieldMatcherFactoryCb<DataType> createFieldMatcher(const FieldMatcherType& field_predicate) {
return createMapMatcher<ExactMapMatcher>(matcher.matcher_tree().exact_match_map(), data_input,
using MapCreationFunction = std::function<absl::StatusOr<std::unique_ptr<MapMatcher<DataType>>>(
absl::optional<OnMatchFactoryCb<DataType>> createOnMatchBase(const OnMatchType& on_match) {