blob: 356f35ee65b41a6e7534cfbf50d9ff8bf5769faf [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 fidl.test.example.codingtables;
struct SomeStruct {
bool foo;
int32 bar;
};
xunion MyXUnion {
bool foo;
int32 bar;
};
table MyTable {
1: bool foo;
2: int32 bar;
3: reserved;
4: array<uint64>:42 baz;
5: vector<uint64>:42 qux;
};
// fidlc will only expose coding tables for message types.
// However, we can obtain the coding tables for SomeStruct/MyXUnion etc. via the coding table
// for request message types, by defining dummy methods which take a single desired argument.
protocol Coding {
SomeStruct(SomeStruct s);
// Various trickery to avoid directly refering a xunion/table inline,
// which is not supported in the C bindings.
MyXUnion(MyXUnion? x);
// Ensuring support for multiple uses of the same nullable type.
MyXUnion2(MyXUnion? x);
VectorOfMyTable(vector<MyTable> t);
VectorOfMyXUnion(vector<MyXUnion> x);
};