aboutsummaryrefslogtreecommitdiff
path: root/mojo/public/interfaces/bindings/tests/test_native_types.mojom
blob: 3df43182a37ed9d23406e0e2df68aa6eb01ff228 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright 2015 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.test;

import "mojo/public/interfaces/bindings/tests/rect.mojom";

// Used to verify that structs can be declared with no body in mojom.

[Native]
struct PickledStruct;

[Native]
enum PickledEnum;

struct PickleContainer {
  PickledStruct f_struct;
  PickledEnum f_enum;
};

interface PicklePasser {
  PassPickledStruct(PickledStruct pickle) => (PickledStruct passed);
  PassPickledEnum(PickledEnum pickle) => (PickledEnum passed);
  PassPickleContainer(PickleContainer container) => (PickleContainer passed);
  PassPickles(array<PickledStruct> pickles) => (array<PickledStruct> passed);
  PassPickleArrays(array<array<PickledStruct>> pickle_arrays)
      => (array<array<PickledStruct>> passed);
};

// Used to verify support for native serialization of mojom-defined structs
// using StrucTraits with different variants of the Rect type from rect.mojom.

interface RectService {
  AddRect(TypemappedRect r);
  GetLargestRect() => (TypemappedRect largest);
  PassSharedRect(SharedTypemappedRect r) => (SharedTypemappedRect passed);
};