Thanks to visit codestin.com
Credit goes to chromium.googlesource.com

blob: da63902df85ea44558686bf94c6fa05c8e45410e [file] [log] [blame]
Avi Drissmane4622aa2022-09-08 20:36:061// Copyright 2014 The Chromium Authors
dmichael7d09007e2014-12-18 22:30:112// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/json/json_value_converter.h"
6
David 'Digit' Turner93131b7d2019-04-11 13:53:177#include "base/strings/utf_string_conversions.h"
8
Peter Kasting811504a72025-01-09 03:18:509namespace base::internal {
dmichael7d09007e2014-12-18 22:30:1110
Peter Kasting134ef9af2024-12-28 02:30:0911bool BasicValueConverter<int>::Convert(const base::Value& value,
12 int* field) const {
13 if (!value.is_int()) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1714 return false;
Peter Kasting134ef9af2024-12-28 02:30:0915 }
16 if (field) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1717 *field = value.GetInt();
Peter Kasting134ef9af2024-12-28 02:30:0918 }
David 'Digit' Turner93131b7d2019-04-11 13:53:1719 return true;
dmichael7d09007e2014-12-18 22:30:1120}
21
Peter Kasting134ef9af2024-12-28 02:30:0922bool BasicValueConverter<std::string>::Convert(const base::Value& value,
23 std::string* field) const {
24 if (!value.is_string()) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1725 return false;
Peter Kasting134ef9af2024-12-28 02:30:0926 }
27 if (field) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1728 *field = value.GetString();
Peter Kasting134ef9af2024-12-28 02:30:0929 }
David 'Digit' Turner93131b7d2019-04-11 13:53:1730 return true;
dmichael7d09007e2014-12-18 22:30:1131}
32
Jan Wilken Dörrie085b2aa2021-03-12 16:26:5733bool BasicValueConverter<std::u16string>::Convert(const base::Value& value,
34 std::u16string* field) const {
Peter Kasting134ef9af2024-12-28 02:30:0935 if (!value.is_string()) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1736 return false;
Peter Kasting134ef9af2024-12-28 02:30:0937 }
38 if (field) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1739 *field = base::UTF8ToUTF16(value.GetString());
Peter Kasting134ef9af2024-12-28 02:30:0940 }
David 'Digit' Turner93131b7d2019-04-11 13:53:1741 return true;
dmichael7d09007e2014-12-18 22:30:1142}
43
Peter Kasting134ef9af2024-12-28 02:30:0944bool BasicValueConverter<double>::Convert(const base::Value& value,
45 double* field) const {
46 if (!value.is_double() && !value.is_int()) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1747 return false;
Peter Kasting134ef9af2024-12-28 02:30:0948 }
49 if (field) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1750 *field = value.GetDouble();
Peter Kasting134ef9af2024-12-28 02:30:0951 }
David 'Digit' Turner93131b7d2019-04-11 13:53:1752 return true;
dmichael7d09007e2014-12-18 22:30:1153}
54
Peter Kasting134ef9af2024-12-28 02:30:0955bool BasicValueConverter<bool>::Convert(const base::Value& value,
56 bool* field) const {
57 if (!value.is_bool()) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1758 return false;
Peter Kasting134ef9af2024-12-28 02:30:0959 }
60 if (field) {
David 'Digit' Turner93131b7d2019-04-11 13:53:1761 *field = value.GetBool();
Peter Kasting134ef9af2024-12-28 02:30:0962 }
David 'Digit' Turner93131b7d2019-04-11 13:53:1763 return true;
dmichael7d09007e2014-12-18 22:30:1164}
65
Peter Kasting811504a72025-01-09 03:18:5066} // namespace base::internal