diff options
Diffstat (limited to 'statsd/src/FieldValue.cpp')
-rw-r--r-- | statsd/src/FieldValue.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/statsd/src/FieldValue.cpp b/statsd/src/FieldValue.cpp index aa129a44..84fad927 100644 --- a/statsd/src/FieldValue.cpp +++ b/statsd/src/FieldValue.cpp @@ -60,6 +60,17 @@ bool Field::matches(const Matcher& matcher) const { return false; } +std::vector<Matcher> dedupFieldMatchers(const std::vector<Matcher>& fieldMatchers) { + std::vector<Matcher> dedupedFieldMatchers; + for (size_t i = 0; i < fieldMatchers.size(); i++) { + if (std::find(dedupedFieldMatchers.begin(), dedupedFieldMatchers.end(), fieldMatchers[i]) == + dedupedFieldMatchers.end()) { + dedupedFieldMatchers.push_back(fieldMatchers[i]); + } + } + return dedupedFieldMatchers; +} + void translateFieldMatcher(int tag, const FieldMatcher& matcher, int depth, int* pos, int* mask, std::vector<Matcher>* output) { if (depth > kMaxLogDepth) { |