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

#pragma once

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

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

namespace fuzzing {

inline constexpr ::std::array<::fidl::fuzzing::DecoderEncoder, 3>
    fidl_test_inheritancewithrecursivedecl_decoder_encoders = {

        ::fidl::fuzzing::DecoderEncoderImpl<::fidl::WireRequest<
            ::fidl_test_inheritancewithrecursivedecl::Parent::First>>,
        ::fidl::fuzzing::DecoderEncoderImpl<::fidl::WireRequest<
            ::fidl_test_inheritancewithrecursivedecl::Child::First>>,
        ::fidl::fuzzing::DecoderEncoderImpl<::fidl::WireRequest<
            ::fidl_test_inheritancewithrecursivedecl::Child::Second>>,
};

}  // namespace fuzzing
