blob: 3b8c0cd66ddb145fc2028f4424dce0fe2093f5f8 [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 conformance;
using zx;
table XUnionInTable {
1: string before;
2: SampleXUnion xu;
3: string after;
};
struct TestXUnionInTable {
XUnionInTable value;
};
union IpAddressConfig {
1: array<uint32>:6 padding_size_24_align_4;
2: bool dhcp;
};
struct InterfaceConfig {
string name;
IpAddressConfig ip_address_config;
};
struct TestAddEthernetDeviceRequest {
string topological_path;
InterfaceConfig config;
// TODO(fxbug.dev/7947): Use 'EthernetDevice device;' instead.
uint32 this_should_be_a_handle;
};
struct NodeAttributes {
uint32 mode;
uint64 id;
uint64 content_size;
uint64 storage_size;
uint64 link_count;
uint64 creation_time;
uint64 modification_time;
};
struct FileGetAttrResponse {
zx.status s;
NodeAttributes attributes;
};
struct Int64Struct {
int64 x;
};
union SimpleUnion {
1: int32 i32;
2: int64 i64;
3: Int64Struct s;
4: string str;
};
flexible union SampleXUnion {
1: uint32 u;
2: SimpleUnion su;
3: SimpleTable st;
};
flexible resource union SampleResourceXUnion {
1: uint32 u;
2: SimpleUnion su;
3: SimpleTable st;
};
union SampleStrictXUnion {
1: uint32 u;
2: SimpleUnion su;
3: SimpleTable st;
};
struct TestInlineXUnionInStruct {
string before;
SampleXUnion xu;
string after;
};
struct TestOptionalXUnionInStruct {
string before;
SampleXUnion? xu;
string after;
};
struct TestStrictXUnionInStruct {
SampleStrictXUnion xu;
};
struct TestFlexibleXUnionInStruct {
SampleXUnion xu;
};
resource struct TestFlexibleResourceXUnionInStruct {
SampleResourceXUnion xu;
};
// TODO(fxbug.dev/36441): Allow bindings to compile on host with handles.
[BindingsDenylist = "llcpp"]
resource struct FidlvizDemo {
uint8 f1;
int8 f2;
uint16 f3;
uint32 f4;
uint64 f5;
uint8 f6;
uint8 f7;
uint16 f8;
float32 f9;
float64 f10;
bool f11;
bool f12;
string f13;
string? f14;
string f15;
handle? f16;
handle f17;
array<uint8>:3 f18;
vector<float64> f19;
vector<uint8>? f20;
vector<uint8> f21;
FidlvizBits f22;
FidlvizEnum f23;
FidlvizStruct1 f24;
FidlvizStruct2 f25;
FidlvizStruct1? f26;
FidlvizStruct2? f27;
FidlvizTable f28;
FidlvizTable f29;
FidlvizUnion? f30;
FidlvizUnion f31;
};
bits FidlvizBits : uint8 {
A = 1;
B = 2;
C = 4;
};
enum FidlvizEnum : uint8 {
A = 42;
};
struct FidlvizStruct1 {
};
struct FidlvizStruct2 {
uint64 x;
};
table FidlvizTable {
1: bool f1;
2: reserved;
3: bool f3;
};
union FidlvizUnion {
1: reserved;
2: reserved;
3: reserved;
4: reserved;
5: reserved;
6: reserved;
7: string f7;
};