// WARNING: This file is machine generated by fidlgen.

#pragma once

#include <fidl/test/union/llcpp/fidl.h>

// For ::fidl::fuzzing::DecoderEncoderImpl.
#include <lib/fidl/cpp/fuzzing/decoder_encoder.h>

namespace fuzzing {

inline constexpr ::std::array<::fidl::fuzzing::DecoderEncoder, 9>
    fidl_test_union__decoder_encoders = {
        ::fidl::fuzzing::DecoderEncoderImpl<
            ::fidl_test_union::wire::StructWithNullableXUnion>,
        ::fidl::fuzzing::DecoderEncoderImpl<::fidl_test_union::wire::Pizza>,
        ::fidl::fuzzing::DecoderEncoderImpl<::fidl_test_union::wire::Pasta>,
        ::fidl::fuzzing::DecoderEncoderImpl<::fidl::WireRequest<
            ::fidl_test_union::TestProtocol::
                StrictXUnionHenceResponseMayBeStackAllocated>>,
        ::fidl::fuzzing::DecoderEncoderImpl<::fidl::WireResponse<
            ::fidl_test_union::TestProtocol::
                StrictXUnionHenceResponseMayBeStackAllocated>>,
        ::fidl::fuzzing::DecoderEncoderImpl<::fidl::WireRequest<
            ::fidl_test_union::TestProtocol::
                FlexibleXUnionHenceResponseMustBeHeapAllocated>>,
        ::fidl::fuzzing::DecoderEncoderImpl<::fidl::WireResponse<
            ::fidl_test_union::TestProtocol::
                FlexibleXUnionHenceResponseMustBeHeapAllocated>>,
        ::fidl::fuzzing::DecoderEncoderImpl<
            ::fidl_test_union::wire::NullableUnionStruct>,
        ::fidl::fuzzing::DecoderEncoderImpl<::fidl_test_union::wire::Empty>,
};

}  // namespace fuzzing
