• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2023 The Chromium Authors
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 "net/dns/public/host_resolver_source.h"
6 
7 #include "base/values.h"
8 #include "third_party/abseil-cpp/absl/types/optional.h"
9 
10 namespace net {
11 
ToValue(HostResolverSource source)12 base::Value ToValue(HostResolverSource source) {
13   return base::Value(static_cast<int>(source));
14 }
15 
HostResolverSourceFromValue(const base::Value & value)16 absl::optional<HostResolverSource> HostResolverSourceFromValue(
17     const base::Value& value) {
18   absl::optional<int> value_int = value.GetIfInt();
19   if (!value_int.has_value() || value_int.value() < 0 ||
20       value_int.value() > static_cast<int>(HostResolverSource::MAX)) {
21     return absl::nullopt;
22   }
23 
24   return static_cast<HostResolverSource>(value_int.value());
25 }
26 
27 }  // namespace net
28