// Copyright 2018 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module mojo_base.mojom; // Value represents a value that can be serialized to/from JSON. // // One notable caveat is that Value supports arbitrary binary data, which JSON // does not support natively. union Value { // Null type placeholder. This field is never used. uint8 null_value; // Primitive types. bool bool_value; int32 int_value; double double_value; // Unicode string. string string_value; // Binary blob with arbitrary bytes. Not supported for JSON. array binary_value; // Basic container support for lists and maps. DictionaryValue dictionary_value; ListValue list_value; }; // Interfaces that only want to handle a value of dictionary or list type // should use base.mojom.DictionaryValue or base.mojom.ListValue in the method // declaration. Though both of these types are mapped to base::Value in C++, // the generated deserialization will guarantee that the method is only invoked // with a base::Value of the correct subtype. struct DictionaryValue { map storage; }; struct ListValue { array storage; };