blob: 87e2291b62ee7566192e5454d81c518ed9488eab [file] [log] [blame]
// Copyright 2023 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 fuchsia.controller.test;
using zx;
type EmptyUnion = flexible union {};
type NoopUnion = flexible union {
1: union_str string:255;
2: union_bool bool;
3: union_int int64;
};
type SomeBits = strict bits : uint64 {
FOO = 0x8000000000000000;
};
type NoopTable = table {
1: dub float32;
2: str string:255;
3: union_field NoopUnion;
4: integer int64;
};
@discoverable
closed protocol Noop {
strict DoStringNoop(struct {
value string:255;
}) -> ();
strict DoIntNoop(struct {
value int32;
}) -> ();
strict DoTableNoop(struct {
tab NoopTable;
}) -> ();
strict StrictOneWayUnion(flexible union {
1: value int32;
2: other_value string:10;
});
strict StrictTwoWayUnion(flexible union {
1: value int32;
2: other_value string:10;
}) -> ();
strict DoHandleNoop(resource struct {
server_end zx.Handle:CHANNEL;
}) -> ();
strict DoVectorNoop(struct {
v vector<string:255>:255;
}) -> ();
strict DoArrayNoop(struct {
a array<int32, 4>;
}) -> ();
strict DoBitsNoop(struct {
b SomeBits;
}) -> ();
strict DoNoop() -> ();
};
@discoverable
open protocol ComposerThing {
strict ReturnPossibleError() -> (struct {
some_bool_value bool;
}) error zx.Status;
flexible ReturnPossibleError2() -> () error zx.Status;
};
open protocol OtherComposedProtocol {
compose ComposerThing;
};
@discoverable
open protocol Testing {
compose ComposerThing;
strict ReturnUnion() -> (flexible union {
1: x uint8;
2: y string:255;
});
strict ReturnUnionWithTable() -> (flexible union {
1: x NoopUnion;
2: y NoopTable;
});
strict ReturnOtherComposedProtocol() -> (resource struct {
client_thing client_end:OtherComposedProtocol;
});
strict ReturnSocketOrError() -> (resource struct {
reader_thing zx.Handle:SOCKET;
}) error zx.Status;
};
@discoverable
closed protocol ExampleEvents {
strict -> OnFirst(struct {
message string:128;
});
strict -> OnSecond();
};
open protocol FlexibleMethodTester {
flexible SomeMethod() -> (struct {
some_bool_value bool;
}) error zx.Status;
flexible SomeMethodWithoutError() -> (struct {
some_bool_value bool;
});
flexible SomeMethodJustError() -> () error zx.Status;
flexible FlexibleOneWayUnion(flexible union {
1: value int32;
2: other_value string:10;
});
flexible FlexibleTwoWayUnion(flexible union {
1: value int32;
2: other_value string:10;
}) -> ();
};
alias AliasOfArray = array<int16, 3>;