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

#pragma once

#include <fidl/test.protocolpayloads/cpp/wire.h>

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

namespace fuzzing {

inline constexpr ::std::array<::fidl::fuzzing::DecoderEncoderForType, 42>
    test_protocolpayloads_decoder_encoders = {
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolTwoWayImportWithErrorTopResponse",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolTwoWayImportWithErrorTopResponse>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolTwoWayAnonWithErrorResponse",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolTwoWayAnonWithErrorResponse>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolTwoWayAnonWithErrorTopResponse",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolTwoWayAnonWithErrorTopResponse>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolOnImportWithErrorRequest",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolOnImportWithErrorRequest>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolOnAnonWithErrorResponse",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolOnAnonWithErrorResponse>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolOnAnonWithErrorRequest",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolOnAnonWithErrorRequest>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolTwoWayAnonWithErrorRequest",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolTwoWayAnonWithErrorRequest>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolTwoWayAnonTopResponse",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolTwoWayAnonTopResponse>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolTwoWayAnonRequest",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolTwoWayAnonRequest>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolOneWayAnonRequest",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolOneWayAnonRequest>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolOnAnonRequest",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolOnAnonRequest>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::LocalStructPayload",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::LocalStructPayload>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolTwoWayLocalWithErrorTopResponse",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolTwoWayLocalWithErrorTopResponse>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::test_protocolpayloads::wire::MainProtocolOnLocalWithErrorRequest",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::test_protocolpayloads::wire::MainProtocolOnLocalWithErrorRequest>,
        },

        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::OneWayComposed>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::OneWayComposed>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayComposed>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayComposed>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayComposed>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayComposed>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayComposedWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayComposedWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayComposedWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayComposedWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnComposed>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnComposed>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnComposedWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnComposedWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::OneWayLocal>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::OneWayLocal>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayLocal>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayLocal>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayLocal>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayLocal>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayLocalWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayLocalWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayLocalWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayLocalWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnLocal>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnLocal>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnLocalWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnLocalWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::OneWayImport>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::OneWayImport>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayImport>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayImport>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayImport>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayImport>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayImportWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayImportWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayImportWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayImportWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnImport>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnImport>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnImportWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnImportWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::OneWayAnon>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::OneWayAnon>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayAnon>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayAnon>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayAnon>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayAnon>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayAnonWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalRequest<::test_protocolpayloads::MainProtocol::TwoWayAnonWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayAnonWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalResponse<::test_protocolpayloads::MainProtocol::TwoWayAnonWithError>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnAnon>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnAnon>>,
        },
        ::fidl::fuzzing::DecoderEncoderForType{
            .fidl_type_name = "::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnAnonWithError>",
            .has_flexible_envelope = false,
            .decoder_encoder = ::fidl::fuzzing::DecoderEncoderImpl<::fidl::internal::TransactionalEvent<::test_protocolpayloads::MainProtocol::OnAnonWithError>>,
        },
};

}  // namespace fuzzing
