blob: 4071e198a00ef2554d7ed8aba6e1abdf15ffadd8 [file] [log] [blame]
// Copyright 2022 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.external;
using zx;
type LargeMessageTable = table {
1: str string:MAX;
};
type LargeMessageUnion = flexible resource union {
1: str string:MAX;
};
type LargeMessageStruct = struct {
str string:MAX;
};
type LargeMessageResourced = resource struct {
str string:MAX;
expect_handles uint64;
handles array<zx.Handle:optional, 64>;
};
closed protocol OverflowingProtocol {
@experimental_overflowing(request=true)
strict TwoWayRequestOnly(LargeMessageUnion) -> (table {});
@experimental_overflowing(response=true)
strict TwoWayResponseOnly(table {}) -> (LargeMessageTable);
@experimental_overflowing(request=true, response=true)
strict TwoWayBothRequestAndResponse(LargeMessageStruct) -> (LargeMessageStruct);
@experimental_overflowing(request=true)
strict OneWayCall(LargeMessageTable);
@experimental_overflowing(response=true)
strict -> OnOneWayReplyEvent(LargeMessageUnion);
@experimental_overflowing(request=true, response=true)
strict Resourced(LargeMessageResourced) -> (LargeMessageResourced);
};