| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef BASE_TEST_METRICS_HISTOGRAM_ENUM_READER_H_ |
| #define BASE_TEST_METRICS_HISTOGRAM_ENUM_READER_H_ |
| |
| #include <map> |
| #include <string> |
| |
| #include "base/metrics/histogram_base.h" |
| #include "base/optional.h" |
| |
| namespace base { |
| |
| using HistogramEnumEntryMap = std::map<HistogramBase::Sample, std::string>; |
| |
| // Find and read the enum with the given |enum_name| (with integer values) from |
| // tools/metrics/histograms/enums.xml. |
| // |
| // Returns map { value => label } so that: |
| // <int value="9" label="enable-pinch-virtual-viewport"/> |
| // becomes: |
| // { 9 => "enable-pinch-virtual-viewport" } |
| // Returns empty base::nullopt on failure. |
| base::Optional<HistogramEnumEntryMap> ReadEnumFromEnumsXml( |
| const std::string& enum_name); |
| |
| } // namespace base |
| |
| #endif // BASE_TEST_METRICS_HISTOGRAM_ENUM_READER_H_ |