1 // Copyright 2019 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.
4 
5 #include "chromeos/services/network_config/public/mojom/cros_network_config_mojom_traits.h"
6 
7 #include "base/notreached.h"
8 
9 namespace mojo {
10 
11 chromeos::network_config::mojom::ProxyMode
12 EnumTraits<chromeos::network_config::mojom::ProxyMode,
ToMojom(ProxyPrefs::ProxyMode input)13            ProxyPrefs::ProxyMode>::ToMojom(ProxyPrefs::ProxyMode input) {
14   switch (input) {
15     case ProxyPrefs::MODE_DIRECT:
16       return chromeos::network_config::mojom::ProxyMode::kDirect;
17     case ProxyPrefs::MODE_AUTO_DETECT:
18       return chromeos::network_config::mojom::ProxyMode::kAutoDetect;
19     case ProxyPrefs::MODE_PAC_SCRIPT:
20       return chromeos::network_config::mojom::ProxyMode::kPacScript;
21     case ProxyPrefs::MODE_FIXED_SERVERS:
22       return chromeos::network_config::mojom::ProxyMode::kFixedServers;
23     case ProxyPrefs::MODE_SYSTEM:
24       return chromeos::network_config::mojom::ProxyMode::kSystem;
25     case ProxyPrefs::kModeCount:
26       break;
27   }
28 
29   NOTREACHED();
30   return chromeos::network_config::mojom::ProxyMode::kDirect;
31 }
32 
33 bool EnumTraits<chromeos::network_config::mojom::ProxyMode,
34                 ProxyPrefs::ProxyMode>::
FromMojom(chromeos::network_config::mojom::ProxyMode input,ProxyPrefs::ProxyMode * out)35     FromMojom(chromeos::network_config::mojom::ProxyMode input,
36               ProxyPrefs::ProxyMode* out) {
37   switch (input) {
38     case chromeos::network_config::mojom::ProxyMode::kDirect:
39       *out = ProxyPrefs::MODE_DIRECT;
40       return true;
41     case chromeos::network_config::mojom::ProxyMode::kAutoDetect:
42       *out = ProxyPrefs::MODE_AUTO_DETECT;
43       return true;
44     case chromeos::network_config::mojom::ProxyMode::kPacScript:
45       *out = ProxyPrefs::MODE_PAC_SCRIPT;
46       return true;
47     case chromeos::network_config::mojom::ProxyMode::kFixedServers:
48       *out = ProxyPrefs::MODE_FIXED_SERVERS;
49       return true;
50     case chromeos::network_config::mojom::ProxyMode::kSystem:
51       *out = ProxyPrefs::MODE_SYSTEM;
52       return true;
53   }
54 
55   NOTREACHED();
56   return false;
57 }
58 
59 }  // namespace mojo
60