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

#include <lib/fidl/internal.h>


extern const struct FidlCodedStruct bottom_FooTable;


extern const struct FidlCodedStruct fidl_test_foreigntypeinresponseusedthroughcompose_TopGetFooRequestTable;
const struct FidlCodedStruct fidl_test_foreigntypeinresponseusedthroughcompose_TopGetFooRequestTable = {.tag=kFidlTypeStruct, .elements=NULL, .element_count=0u, .size=16u, .name="fidl.test.foreigntypeinresponseusedthroughcompose/TopGetFooRequest"};

extern const struct FidlCodedStruct fidl_test_foreigntypeinresponseusedthroughcompose_TopGetFooResponseTable;
static const struct FidlStructElement Fields67fidl_test_foreigntypeinresponseusedthroughcompose_TopGetFooResponse[] = {
    /*FidlStructPadding*/{.padding=/*FidlStructPadding*/{.offset=20u, .header=/*FidlStructElementHeader*/{.element_type=kFidlStructElementType_Padding32,.is_resource=kFidlIsResource_NotResource},.mask_32=4294967295u}}
};
const struct FidlCodedStruct fidl_test_foreigntypeinresponseusedthroughcompose_TopGetFooResponseTable = {.tag=kFidlTypeStruct, .elements=Fields67fidl_test_foreigntypeinresponseusedthroughcompose_TopGetFooResponse, .element_count=1u, .size=24u, .name="fidl.test.foreigntypeinresponseusedthroughcompose/TopGetFooResponse"};


