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 <optional> 8 9 #include "base/values.h" 10 11 namespace net { 12 ToValue(HostResolverSource source)13base::Value ToValue(HostResolverSource source) { 14 return base::Value(static_cast<int>(source)); 15 } 16 HostResolverSourceFromValue(const base::Value & value)17std::optional<HostResolverSource> HostResolverSourceFromValue( 18 const base::Value& value) { 19 std::optional<int> value_int = value.GetIfInt(); 20 if (!value_int.has_value() || value_int.value() < 0 || 21 value_int.value() > static_cast<int>(HostResolverSource::MAX)) { 22 return std::nullopt; 23 } 24 25 return static_cast<HostResolverSource>(value_int.value()); 26 } 27 28 } // namespace net 29