// 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 fuchsia.ledger.testing;

// Test FIDL objects to ensure we can encode and decode them.

table TestMessage1 {
    1: vector<uint8>:16 bytes;
};

enum TestEnum {
    A = 0;
    B = 1;
    C = 2;
};

struct TestMessage2 {
    array<TestEnum>:3 test_enum;
};

xunion TestUnion {
    1: TestMessage1 message_1;
    2: TestMessage2 message_2;
    3: string:35 message_3;
};

table TestStruct {
    1: string:32 some_string;
    2: int64 some_int;
    3: float64 some_float;
    4: TestUnion test_union;
};
