// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
module content.mojom;
// Interfaces used to test that encoding/decoding between JS and C++ works
// correctly.
union TestUnion {
bool bool_value;
int32 int32_value;
string string_value;
};
union NestedUnion {
int8 int8_value;
TestUnion union_value;
};
// Interface that echos the arguments by extracting them from structs, unions,
// etc. or by adding them to structs, unions, etc.
interface MojoEcho {
// The following methods help test that JS can correctly encode unions. They
// CHECK if the union has not the expected type.
//
// Runs callback with |test_union.bool_value|.
EchoBoolFromUnion(TestUnion test_union) => (bool value);
// Runs callback with |test_union.int32_value|.
EchoInt32FromUnion(TestUnion test_union) => (int32 value);
// Runs callback with |test_union.string_value|.
EchoStringFromUnion(TestUnion test_union) => (string value);
// The following methods help test that JS can correctly decode unions.
//
// Runs callback with |value| as the TestUnion's value.
EchoBoolAsUnion(bool value) => (TestUnion test_union);
// Runs callback with |value| as the TestUnion's value.
EchoInt32AsUnion(int32 value) => (TestUnion test_union);
// Runs callback with |value| as the TestUnion's value.
EchoStringAsUnion(string value) => (TestUnion test_union);
// The following methods help test that JS can correctly encode optional
// unions. They CHECK if the union has not the expected type.
//
// Runs the empty callback.
EchoNullFromOptionalUnion(TestUnion? test_union) => ();
// Runs callback with |test_union.bool_value|.
EchoBoolFromOptionalUnion(TestUnion? test_union) => (bool value);
// Runs callback with |test_union.int32_value|.
EchoInt32FromOptionalUnion(TestUnion? test_union) => (int32 value);
// Runs callback with |test_union.string_value|.
EchoStringFromOptionalUnion(TestUnion? test_union) => (string value);
// The following methods help test that JS can correctly decode optional
// unions.
//
// Runs callback with a null TestUnion.
EchoNullAsOptionalUnion() => (TestUnion? test_union);
// Runs callback with |value| as the TestUnion's value.
EchoBoolAsOptionalUnion(bool value) => (TestUnion? test_union);
// Runs callback with |value| as the TestUnion's value.
EchoInt32AsOptionalUnion(int32 value) => (TestUnion? test_union);
// Runs callback with |value| as the TestUnion's value.
EchoStringAsOptionalUnion(string value) => (TestUnion? test_union);
// The following methods help test that JS can correctly encode nested unions.
// They CHECK if the union has not the expected type.
//
// Runs callback with |test_union.int8_value|.
EchoInt8FromNestedUnion(NestedUnion test_union) => (int8 value);
// Runs callback with |test_union.union_value.bool_value|.
EchoBoolFromNestedUnion(NestedUnion test_union) => (bool value);
// Runs callback with |test_union.union_value.string_value|.
EchoStringFromNestedUnion(NestedUnion test_union) => (string value);
// The following methods help test that JS can correctly decode nested unions.
//
// Runs callback with |value| as the NestedUnion's value.
EchoInt8AsNestedUnion(int8 value) => (NestedUnion test_union);
// Runs callback with |value| as the NestedUnion.TestUnion's value.
EchoBoolAsNestedUnion(bool value) => (NestedUnion test_union);
// Runs callback with |value| as the NestedUnion.TestUnion's value.
EchoStringAsNestedUnion(string value) => (NestedUnion test_union);
// The following methods help test that JS can correctly encode optional
// nested unions. They CHECK if the union has not the expected type.
//
// Runs the empty callback.
EchoNullFromOptionalNestedUnion(NestedUnion? test_union) => ();
// Runs callback with |test_union.int8_value|.
EchoInt8FromOptionalNestedUnion(NestedUnion? test_union) => (int8 value);
// Runs callback with |test_union.union_value.bool_value|.
EchoBoolFromOptionalNestedUnion(NestedUnion? test_union) => (bool value);
// Runs callback with |test_union.union_value.string_value|.
EchoStringFromOptionalNestedUnion(NestedUnion? test_union) => (string value);
// The following methods help test that JS can correctly decode optional
// nested unions.
//
// Runs the empty callback.
EchoNullAsOptionalNestedUnion() => (NestedUnion? test_union);
// Runs callback with |test_union.int8_value|.
EchoInt8AsOptionalNestedUnion(int8 value) => (NestedUnion? test_union);
// Runs callback with |test_union.union_value.bool_value|.
EchoBoolAsOptionalNestedUnion(bool value) => (NestedUnion? test_union);
// Runs callback with |test_union.union_value.string_value|.
EchoStringAsOptionalNestedUnion(string value) => (NestedUnion? test_union);
// The following methods help test that JS can correctly encode array of
// bools.
EchoBoolArray(array<bool> values) => (array<bool> values);
};