// Copyright 2014 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/sample_import.mojom"; enum AnEnum { FIRST, SECOND }; [Extensible] enum AnExtensibleEnum { FIRST, SECOND, THIRD }; union PodUnion { int8 f_int8; int8 f_int8_other; uint8 f_uint8; int16 f_int16; uint16 f_uint16; int32 f_int32; uint32 f_uint32; int64 f_int64; uint64 f_uint64; float f_float; double f_double; bool f_bool; AnEnum f_enum; AnExtensibleEnum f_extensible_enum; }; union ObjectUnion { int8 f_int8; string f_string; DummyStruct f_dummy; DummyStruct? f_nullable; array<int8> f_array_int8; map<string, int8> f_map_int8; PodUnion f_pod_union; // Test that Clone() is defined after SmallStruct is declared. array<SmallStruct> f_small_structs; }; union HandleUnion { handle f_handle; handle<message_pipe> f_message_pipe; handle<data_pipe_consumer> f_data_pipe_consumer; handle<data_pipe_producer> f_data_pipe_producer; handle<shared_buffer> f_shared_buffer; SmallCache f_small_cache; SmallCache& f_small_cache_request; }; struct WrapperStruct { ObjectUnion? object_union; PodUnion? pod_union; HandleUnion? handle_union; }; struct DummyStruct { int8 f_int8; }; struct SmallStruct { DummyStruct? dummy_struct; PodUnion? pod_union; array<PodUnion>? pod_union_array; array<PodUnion?>? nullable_pod_union_array; array<DummyStruct>? s_array; map<string, PodUnion>? pod_union_map; map<string, PodUnion?>? nullable_pod_union_map; }; struct SmallStructNonNullableUnion { PodUnion pod_union; }; struct SmallObjStruct { ObjectUnion obj_union; int8 f_int8; }; interface SmallCache { SetIntValue(int64 int_value); GetIntValue() => (int64 int_value); }; interface UnionInterface { Echo(PodUnion in_val) => (PodUnion out_val); }; struct TryNonNullStruct { DummyStruct? nullable; DummyStruct non_nullable; }; union OldUnion { int8 f_int8; }; union NewUnion { int8 f_int8; int16 f_int16; }; struct ImportedUnionStruct { imported.PointOrShape point_or_shape; }; union ImportedUnionUnion { imported.PointOrShape point_or_shape; };