naiveproxy/mojo/public/interfaces/bindings/tests/test_unions.mojom
2018-01-29 00:30:36 +08:00

116 lines
2.2 KiB
Plaintext

// 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;
};