1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // Helper functions that allow to map enum values to strings.
9 #include "base/logging.h"
15 struct NameMapElement {
17 const char* const name;
20 template <typename T, size_t N>
21 const char* ValueToName(const NameMapElement<T> (&map)[N], T value) {
22 for (size_t i = 0; i < N; ++i) {
23 if (map[i].value == value)
30 template <typename T, size_t N>
31 bool NameToValue(const NameMapElement<T> (&map)[N],
32 const std::string& name,
34 for (size_t i = 0; i < N; ++i) {
35 if (map[i].name == name) {
36 *result = map[i].value;
43 } // namespace protocol
44 } // namespace remoting