// Copyright 2018 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.examples.example9;

using zx;

enum EchoMe {
    zero = 0;
    one = 1;
};

struct EchoMore {
    uint32 first;
    uint64 second;
};

protocol Echo {
    Echo32(uint32 uint32) -> (uint32 response);
    Echo64(uint64 uint64) -> (uint64 response);
    EchoEnum(EchoMe req) -> (EchoMe response);
    EchoHandle(handle req) -> (handle response);
    EchoChannel(zx.handle:CHANNEL req) -> (zx.handle:CHANNEL response);
    EchoStruct(EchoMore req) -> (EchoMore response);
};
