• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2016 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
5module mojo.test;
6
7// TODO(yzshen): Rename *WithTraits* types to something more readable.
8
9struct NestedStructWithTraits {
10  int32 value;
11};
12
13enum EnumWithTraits {
14  VALUE_0,
15  VALUE_1
16};
17
18struct StructWithTraits {
19  EnumWithTraits f_enum;
20  bool f_bool;
21  uint32 f_uint32;
22  uint64 f_uint64;
23  string f_string;
24  string f_string2;
25  array<string> f_string_array;
26  NestedStructWithTraits f_struct;
27  array<NestedStructWithTraits> f_struct_array;
28  map<string, NestedStructWithTraits> f_struct_map;
29};
30
31// Test that this container can be cloned.
32struct StructWithTraitsContainer {
33  StructWithTraits f_struct;
34};
35
36struct PassByValueStructWithTraits {
37  handle f_handle;
38};
39
40// The custom type for PassByValueStructWithTraits is not clonable. Test that
41// this container can compile as long as Clone() is not used.
42struct PassByValueStructWithTraitsContainer {
43  PassByValueStructWithTraits f_struct;
44};
45
46struct StructWithTraitsForUniquePtrTest {
47  int32 f_int32;
48};
49
50interface TraitsTestService {
51  EchoStructWithTraits(StructWithTraits s) => (StructWithTraits passed);
52
53  EchoPassByValueStructWithTraits(PassByValueStructWithTraits s) =>
54      (PassByValueStructWithTraits passed);
55
56  EchoEnumWithTraits(EnumWithTraits e) => (EnumWithTraits passed);
57
58  EchoStructWithTraitsForUniquePtrTest(StructWithTraitsForUniquePtrTest e) => (
59      StructWithTraitsForUniquePtrTest passed);
60};
61