1// Copyright 2014 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 7import "mojo/public/interfaces/bindings/tests/sample_import.mojom"; 8 9enum AnEnum { 10 FIRST, SECOND 11}; 12 13[Extensible] 14enum AnExtensibleEnum { 15 FIRST, SECOND, THIRD 16}; 17 18union PodUnion { 19 int8 f_int8; 20 int8 f_int8_other; 21 uint8 f_uint8; 22 int16 f_int16; 23 uint16 f_uint16; 24 int32 f_int32; 25 uint32 f_uint32; 26 int64 f_int64; 27 uint64 f_uint64; 28 float f_float; 29 double f_double; 30 bool f_bool; 31 AnEnum f_enum; 32 AnExtensibleEnum f_extensible_enum; 33}; 34 35union ObjectUnion { 36 int8 f_int8; 37 string f_string; 38 DummyStruct f_dummy; 39 DummyStruct? f_nullable; 40 array<int8> f_array_int8; 41 map<string, int8> f_map_int8; 42 PodUnion f_pod_union; 43 // Test that Clone() is defined after SmallStruct is declared. 44 array<SmallStruct> f_small_structs; 45}; 46 47union HandleUnion { 48 handle f_handle; 49 handle<message_pipe> f_message_pipe; 50 handle<data_pipe_consumer> f_data_pipe_consumer; 51 handle<data_pipe_producer> f_data_pipe_producer; 52 handle<shared_buffer> f_shared_buffer; 53 SmallCache f_small_cache; 54 SmallCache& f_small_cache_request; 55}; 56 57struct WrapperStruct { 58 ObjectUnion? object_union; 59 PodUnion? pod_union; 60 HandleUnion? handle_union; 61}; 62 63struct DummyStruct { 64 int8 f_int8; 65}; 66 67struct SmallStruct { 68 DummyStruct? dummy_struct; 69 PodUnion? pod_union; 70 array<PodUnion>? pod_union_array; 71 array<PodUnion?>? nullable_pod_union_array; 72 array<DummyStruct>? s_array; 73 map<string, PodUnion>? pod_union_map; 74 map<string, PodUnion?>? nullable_pod_union_map; 75}; 76 77struct SmallStructNonNullableUnion { 78 PodUnion pod_union; 79}; 80 81struct SmallObjStruct { 82 ObjectUnion obj_union; 83 int8 f_int8; 84}; 85 86interface SmallCache { 87 SetIntValue(int64 int_value); 88 GetIntValue() => (int64 int_value); 89}; 90 91interface UnionInterface { 92 Echo(PodUnion in_val) => (PodUnion out_val); 93}; 94 95struct TryNonNullStruct { 96 DummyStruct? nullable; 97 DummyStruct non_nullable; 98}; 99 100union OldUnion { 101 int8 f_int8; 102}; 103 104union NewUnion { 105 int8 f_int8; 106 int16 f_int16; 107}; 108 109struct ImportedUnionStruct { 110 imported.PointOrShape point_or_shape; 111}; 112 113union ImportedUnionUnion { 114 imported.PointOrShape point_or_shape; 115}; 116