blob: 9df4b4e1451687eaf274058b4901b324128f4bc6 [file] [log] [blame]
// 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.
[DartPackage="_mojo_for_test_only"]
module mojo.test;
import "test_included_unions.mojom";
enum AnEnum {
FIRST,
SECOND,
};
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;
};
// Tests that you can reference yet-to-be-declared unions in a union.
union UnionOfUnions {
ObjectUnion u;
array<ObjectUnion> a_ou;
array<HandleUnion> a_hu;
map<int64, ObjectUnion> m_ou;
map<int64, HandleUnion> m_hu;
};
// Tests that you can reference yet-to-be-declared unions in a struct.
struct StructOfUnions {
ObjectUnion u;
array<ObjectUnion> a_ou;
array<HandleUnion> a_hu;
map<int64, ObjectUnion> m_ou;
map<int64, HandleUnion> m_hu;
};
union UnionOfReferences {
PodUnion? pod_union;
DummyStruct? dummy_struct;
array<int32> int_array;
};
struct StructOfUnionOfReferences {
UnionOfReferences? u;
};
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;
};
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;
};
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;
};
union ObjectOnlyUnion {
DummyStruct dummy1;
};
struct StructNullObjectUnion {
ObjectOnlyUnion? obj_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 IncludingStruct {
IncludedUnion a;
};