// 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 zx;

type GetStuffRequestArgs = struct {
    an_input int32;
    input2 int32;
};
type GetStuffResponseArgs = struct {
    status status;
};

@transport("Syscall")
protocol Couple {
    /// This does a single thing.
    DoThing(struct {
        an_input int32;
    }) -> (struct {
        status status;
    });

    /// Does great stuff.
    GetStuff(GetStuffRequestArgs) -> (GetStuffResponseArgs);
};
