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

// fidl_experiment = output_index_json

#include <lib/fidl/internal.h>

const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenyDart_ResponseTable;
const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenyGo_ResponseTable;
const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenyLibfuzzer_ResponseTable;
const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenyRust_ResponseTable;
const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenySyzkaller_ResponseTable;

static const struct FidlStructElement Fields56test_bindingsdenylist_DenyEachBindingOnlyDenyDartRequest[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&fidl_internal_kBoolTable,
        },
    },
};
const struct FidlCodedStruct test_bindingsdenylist_DenyEachBindingOnlyDenyDartRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBindingOnlyDenyDartRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 1,
    .elements = Fields56test_bindingsdenylist_DenyEachBindingOnlyDenyDartRequest,
    .element_count = 1,
};

static const struct FidlStructElement Fields54test_bindingsdenylist_DenyEachBindingOnlyDenyGoRequest[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&fidl_internal_kBoolTable,
        },
    },
};
const struct FidlCodedStruct test_bindingsdenylist_DenyEachBindingOnlyDenyGoRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBindingOnlyDenyGoRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 1,
    .elements = Fields54test_bindingsdenylist_DenyEachBindingOnlyDenyGoRequest,
    .element_count = 1,
};

static const struct FidlStructElement Fields61test_bindingsdenylist_DenyEachBindingOnlyDenyLibfuzzerRequest[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&fidl_internal_kBoolTable,
        },
    },
};
const struct FidlCodedStruct test_bindingsdenylist_DenyEachBindingOnlyDenyLibfuzzerRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBindingOnlyDenyLibfuzzerRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 1,
    .elements = Fields61test_bindingsdenylist_DenyEachBindingOnlyDenyLibfuzzerRequest,
    .element_count = 1,
};

static const struct FidlStructElement Fields56test_bindingsdenylist_DenyEachBindingOnlyDenyRustRequest[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&fidl_internal_kBoolTable,
        },
    },
};
const struct FidlCodedStruct test_bindingsdenylist_DenyEachBindingOnlyDenyRustRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBindingOnlyDenyRustRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 1,
    .elements = Fields56test_bindingsdenylist_DenyEachBindingOnlyDenyRustRequest,
    .element_count = 1,
};

static const struct FidlStructElement Fields61test_bindingsdenylist_DenyEachBindingOnlyDenySyzkallerRequest[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&fidl_internal_kBoolTable,
        },
    },
};
const struct FidlCodedStruct test_bindingsdenylist_DenyEachBindingOnlyDenySyzkallerRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBindingOnlyDenySyzkallerRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 1,
    .elements = Fields61test_bindingsdenylist_DenyEachBindingOnlyDenySyzkallerRequest,
    .element_count = 1,
};

const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenyDart_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyDart_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenyGo_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyGo_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenyLibfuzzer_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyLibfuzzer_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenyRust_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyRust_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_bindingsdenylist_DenyEachBinding_OnlyDenySyzkaller_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenySyzkaller_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

static const struct FidlStructElement Fields57test_bindingsdenylist_MemberOnlyAppearsInImportingLibrary[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&fidl_internal_kBoolTable,
        },
    },
};
const struct FidlCodedStruct test_bindingsdenylist_MemberOnlyAppearsInImportingLibraryTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/MemberOnlyAppearsInImportingLibrary",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 1,
    .elements = Fields57test_bindingsdenylist_MemberOnlyAppearsInImportingLibrary,
    .element_count = 1,
};

static const struct FidlStructElement Fields51test_bindingsdenylist_OnlyAppearsInImportingLibrary[] = {
    {
        .field = {
            .header = {
                .element_type = kFidlStructElementType_Field,
                .is_resource = kFidlIsResource_NotResource,
            },
            .offset_v2 = 0,
            .field_type = (const fidl_type_t*)&fidl_internal_kBoolTable,
        },
    },
};
const struct FidlCodedStruct test_bindingsdenylist_OnlyAppearsInImportingLibraryTable = {
    .tag = kFidlTypeStruct,
    .name = "test.bindingsdenylist/OnlyAppearsInImportingLibrary",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 1,
    .elements = Fields51test_bindingsdenylist_OnlyAppearsInImportingLibrary,
    .element_count = 1,
};

static const struct FidlUnionField Fields57test_bindingsdenylist_DenyEachBinding_OnlyDenyDart_Result[] = {
    {.type = (const fidl_type_t*)&test_bindingsdenylist_DenyEachBinding_OnlyDenyDart_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenyDart_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyDart_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields57test_bindingsdenylist_DenyEachBinding_OnlyDenyDart_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenyDart_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyDart_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields57test_bindingsdenylist_DenyEachBinding_OnlyDenyDart_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields55test_bindingsdenylist_DenyEachBinding_OnlyDenyGo_Result[] = {
    {.type = (const fidl_type_t*)&test_bindingsdenylist_DenyEachBinding_OnlyDenyGo_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenyGo_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyGo_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields55test_bindingsdenylist_DenyEachBinding_OnlyDenyGo_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenyGo_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyGo_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields55test_bindingsdenylist_DenyEachBinding_OnlyDenyGo_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields62test_bindingsdenylist_DenyEachBinding_OnlyDenyLibfuzzer_Result[] = {
    {.type = (const fidl_type_t*)&test_bindingsdenylist_DenyEachBinding_OnlyDenyLibfuzzer_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenyLibfuzzer_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyLibfuzzer_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields62test_bindingsdenylist_DenyEachBinding_OnlyDenyLibfuzzer_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenyLibfuzzer_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyLibfuzzer_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields62test_bindingsdenylist_DenyEachBinding_OnlyDenyLibfuzzer_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields57test_bindingsdenylist_DenyEachBinding_OnlyDenyRust_Result[] = {
    {.type = (const fidl_type_t*)&test_bindingsdenylist_DenyEachBinding_OnlyDenyRust_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenyRust_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyRust_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields57test_bindingsdenylist_DenyEachBinding_OnlyDenyRust_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenyRust_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenyRust_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields57test_bindingsdenylist_DenyEachBinding_OnlyDenyRust_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields62test_bindingsdenylist_DenyEachBinding_OnlyDenySyzkaller_Result[] = {
    {.type = (const fidl_type_t*)&test_bindingsdenylist_DenyEachBinding_OnlyDenySyzkaller_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kUint32Table},
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenySyzkaller_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenySyzkaller_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields62test_bindingsdenylist_DenyEachBinding_OnlyDenySyzkaller_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_bindingsdenylist_DenyEachBinding_OnlyDenySyzkaller_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.bindingsdenylist/DenyEachBinding_OnlyDenySyzkaller_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields62test_bindingsdenylist_DenyEachBinding_OnlyDenySyzkaller_Result,
    .field_count = 2,
};
