// Copyright 2020 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.benchmarkfidl;

type EmptyStruct = struct {};

// Message header for a FIDL transaction.
// See fidl_message_header_t.
type MessageHeader = struct {
    txid uint32;
    flags array<uint8, 3>;
    magic_number uint8;
    ordinal uint64;
};
