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