• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5import "mojo/public/interfaces/bindings/tests/rect.mojom"
6
7[JavaPackage="org.chromium.mojo.bindings.test.mojom.test_structs"]
8module mojo.test {
9
10struct NamedRegion {
11  string? name;
12  Rect[]? rects;
13};
14
15struct RectPair {
16  Rect? first;
17  Rect? second;
18};
19
20struct EmptyStruct {
21};
22
23// Used to verify that struct fields which don't specify a deafult are
24// initialized to: false for bool, 0 for numbers, and null for strings,
25// handles, and structs. The "?" nullable suffix shouldn't have any
26// impact on initial field values.
27
28struct NoDefaultFieldValues {
29  bool f0;
30  int8 f1;
31  uint8 f2;
32  int16 f3;
33  uint16 f4;
34  int32 f5;
35  uint32 f6;
36  int64 f7;
37  uint64 f8;
38  float f9;
39  double f10;
40  string f11;
41  string? f12;
42  handle<message_pipe> f13;
43  handle<data_pipe_consumer> f14;
44  handle<data_pipe_producer> f15;
45  handle<message_pipe>? f16;
46  handle<data_pipe_consumer>? f17;
47  handle<data_pipe_producer>? f18;
48  handle f19;
49  handle? f20;
50  handle<shared_buffer> f21;
51  handle<shared_buffer>? f22;
52  string[] f23;
53  string?[] f24;
54  string[]? f25;
55  string?[]? f26;
56  EmptyStruct f27;
57  EmptyStruct? f28;
58};
59
60// Used to verify that struct fields with an explicit default value
61// are initialized correctly. The "?" nullable suffix shouldn't have any
62// impact on initial field values.
63
64struct DefaultFieldValues {
65  const string kFoo = "foo";
66  bool f0 = true;
67  int8 f1 = 100;
68  uint8 f2 = 100;
69  int16 f3 = 100;
70  uint16 f4 = 100;
71  int32 f5 = 100;
72  uint32 f6 = 100;
73  int64 f7 = 100;
74  uint64 f8 = 100;
75  float f9 = 100;
76  float f10 = 100.0;
77  double f11 = 100;
78  double f12 = 100.0;
79  string f13 = kFoo;
80  string? f14 = kFoo;
81  Rect f15 = default;
82  Rect? f16 = default;
83};
84
85}
86