blob: cea23a5efff5c875509bf7ff70849bf43fb21219 [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
library test.fidlcat.examples;
protocol this_is_an_interface {
String(string s);
Bool(bool b);
Int8(int8 i8);
Int16(int16 i16);
Int32(int32 i32);
Int64(int64 i64);
Uint8(uint8 i8);
Uint16(uint16 i16);
Uint32(uint32 i32);
Uint64(uint64 i64);
Float32(float32 f32);
Float64(float64 f64);
Struct(primitive_types p);
NullableStruct(primitive_types? p);
NullableStructAndInt(primitive_types? p, int32 i);
Array1(array<int32>:1 b_1);
Array2(array<int32>:2 b_2);
Vector(vector<int32>? v_1);
DefaultEnum(default_enum ev);
I8Enum(i8_enum ev);
I16Enum(i16_enum ev);
Handle(handle<channel> ch);
NullableHandle(handle<channel>? ch);
Complex(int32 real, int32 imaginary);
StringInt(string s, int32 i32);
TwoStringStructInt(two_string_struct s, int32 i32);
TwoStringArrayInt(array<string>:2 arr, int32 i32);
TwoStringVectorInt(vector<string> vec, int32 i32);
TwoStringNullableStructInt(two_string_struct? s, int32 i32);
HandleStruct(handle_struct hs);
Union(int_struct_union isu, int32 i);
NullableUnion(int_struct_union? isu, int32 i);
NullableUnionIntFirst(int32 i, int_struct_union? isu);
ShortUnion(u8_u16_union u, int32 i);
XUnion(int_struct_xunion isu, int32 i);
NullableXUnion(int_struct_xunion? isu, int32 i);
NullableXUnionIntFirst(int32 i, int_struct_xunion? isu);
ShortXUnion(u8_u16_xunion u, int32 i);
Table(value_table table, int32 i);
};
struct primitive_types {
bool b;
int8 i8;
int16 i16;
int32 i32;
int64 i64;
uint8 u8;
uint16 u16;
uint32 u32;
uint64 u64;
float32 f32;
float64 f64;
};
enum default_enum {
x = 23;
};
enum i8_enum : int8 {
x = -23;
};
enum i16_enum : int16 {
x = -23;
};
struct two_string_struct {
string value1;
string value2;
};
struct handle_struct {
handle<channel> h1;
handle<channel> h2;
handle<channel> h3;
};
union int_struct_union {
int32 variant_i;
two_string_struct variant_tss;
};
union u8_u16_union {
uint8 variant_u8;
uint16 variant_u16;
};
xunion int_struct_xunion {
int32 variant_i;
two_string_struct variant_tss;
};
xunion u8_u16_xunion {
uint8 variant_u8;
uint16 variant_u16;
};
table value_table {
1: int16 first_int16;
2: two_string_struct second_struct;
3: int_struct_union third_union;
};