// The vdl.config file for the vdltest package.
config = vdltool.Config{
	// Restrict codegen to Go for the moment, since the vdltest package uncovers
	// corner cases that break Java.
	GenLanguages: {Go},
	// Configure native types.
	Go: {
		WireToNativeTypes: {
			// VWireBoolN{Bool,String,Struct}
			"VWireBoolNBool": {
				Kind:    Bool,
				Type:    "vdltest.VNativeWireBoolNBool",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireBoolNString": {
				Kind:    String,
				Type:    "vdltest.VNativeWireBoolNString",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireBoolNStruct": {
				Kind:    Struct,
				Type:    "vdltest.VNativeWireBoolNStruct",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			// VWireIntN{Int,String,Struct}
			"VWireIntNInt": {
				Kind:    Number,
				Type:    "vdltest.VNativeWireIntNInt",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireIntNString": {
				Kind:    String,
				Type:    "vdltest.VNativeWireIntNString",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireIntNStruct": {
				Kind:    Struct,
				Type:    "vdltest.VNativeWireIntNStruct",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			// VWireStringN{String,Struct}
			"VWireStringNString": {
				Kind:    String,
				Type:    "vdltest.VNativeWireStringNString",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireStringNStruct": {
				Kind:    Struct,
				Type:    "vdltest.VNativeWireStringNStruct",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			// VWireArrayN{String,Struct}
			"VWireArrayNString": {
				Kind:    String,
				Type:    "vdltest.VNativeWireArrayNString",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireArrayNStruct": {
				Kind:    Struct,
				Type:    "vdltest.VNativeWireArrayNStruct",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			// VWireListN{String,Struct}
			"VWireListNString": {
				Kind:    String,
				Type:    "vdltest.VNativeWireListNString",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireListNStruct": {
				Kind:    Struct,
				Type:    "vdltest.VNativeWireListNStruct",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			// VWireStructN{String,Struct,Array,Slice,Pointer,Iface}
			"VWireStructNString": {
				Kind:    String,
				Type:    "vdltest.VNativeWireStructNString",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireStructNStruct": {
				Kind:    Struct,
				Type:    "vdltest.VNativeWireStructNStruct",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireStructNArray": {
				Kind:    Array,
				Type:    "vdltest.VNativeWireStructNArray",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireStructNSlice": {
				Kind:    Slice,
				Type:    "vdltest.VNativeWireStructNSlice",
				Zero:    {Mode: Canonical, IsZero: ".IsZero()"},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			// VWireUnionN{String,Struct,Array,Slice,Pointer,Iface}
			"VWireUnionNString": {
				Kind:    String,
				Type:    "vdltest.VNativeWireUnionNString",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireUnionNStruct": {
				Kind:    Struct,
				Type:    "vdltest.VNativeWireUnionNStruct",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireUnionNArray": {
				Kind:    Array,
				Type:    "vdltest.VNativeWireUnionNArray",
				Zero:    {Mode: Unique},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
			"VWireUnionNSlice": {
				Kind:    Slice,
				Type:    "vdltest.VNativeWireUnionNSlice",
				Zero:    {Mode: Canonical, IsZero: ".IsZero()"},
				Imports: {{Path: "v.io/v23/vdl/vdltest", Name: "vdltest"}},
			},
		},
	},
}
