# 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.
#
# WARNING: This file is machine generated by fidlgen.

include <fidl/test/byteandbytes/c/fidl.h>
fidl_test_byteandbytes_ByteAndBytesInLine {
       single_byte int8
       many_bytesInLine fidl_vector
       only_one_k_bytesInLine fidl_vector
       opt_only_one_k_bytesInLine fidl_vector
} [packed]
fidl_test_byteandbytes_ByteAndBytesOutOfLine {
       many_bytesOutOfLine array[int8]
       only_one_k_bytesOutOfLine array[int8]
       opt_only_one_k_bytesOutOfLine array[int8]
} [packed]
fidl_test_byteandbytes_ByteAndBytesHandles {
       void void
} [packed]

