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

#pragma once

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

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

namespace fuzzing {

inline constexpr ::std::array<::fidl::fuzzing::DecoderEncoder, 4>
    fidl_test_doccomments_decoder_encoders = {
        ::fidl::fuzzing::DecoderEncoderImpl<
            ::fidl_test_doccomments::wire::Table>,
        ::fidl::fuzzing::DecoderEncoderImpl<
            ::fidl_test_doccomments::wire::Struct>,
        ::fidl::fuzzing::DecoderEncoderImpl<
            ::fidl::WireRequest<::fidl_test_doccomments::Interface::Method>>,
        ::fidl::fuzzing::DecoderEncoderImpl<
            ::fidl::WireResponse<::fidl_test_doccomments::Interface::OnEvent>>,
};

}  // namespace fuzzing
