blob: 65284bf9ed681b1f92835fca229ae0975769bd55 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// This file was auto-generated by the vanadium vdl tool.
// Package: vdltool
// Package vdltool defines types used by the vdl tool itself, including the
// format of vdl.config files.
package vdltool
import (
"fmt"
"v.io/v23/vdl"
)
// Config specifies the configuration for the vdl tool. This is typically
// represented in optional "vdl.config" files in each vdl source package. Each
// vdl.config file implicitly imports this package. E.g. you may refer to
// vdltool.Config in the "vdl.config" file without explicitly importing vdltool.
type Config struct {
// GenLanguages restricts the set of code generation languages. If the set is
// empty, all supported languages are allowed to be generated.
GenLanguages map[GenLanguage]struct{}
// Language-specific configurations.
Go GoConfig
Java JavaConfig
Javascript JavascriptConfig
}
func (Config) __VDLReflect(struct {
Name string `vdl:"vdltool.Config"`
}) {
}
func (m *Config) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if __VDLType_vdltool_Config == nil || __VDLType0 == nil {
panic("Initialization order error: types generated for FillVDLTarget not initialized. Consider moving caller to an init() block.")
}
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("GenLanguages")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
setTarget4, err := fieldTarget3.StartSet(__VDLType1, len(m.GenLanguages))
if err != nil {
return err
}
for key6 := range m.GenLanguages {
keyTarget5, err := setTarget4.StartKey()
if err != nil {
return err
}
if err := key6.FillVDLTarget(keyTarget5, __VDLType_vdltool_GenLanguage); err != nil {
return err
}
if err := setTarget4.FinishKey(keyTarget5); err != nil {
return err
}
}
if err := fieldTarget3.FinishSet(setTarget4); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
keyTarget7, fieldTarget8, err := fieldsTarget1.StartField("Go")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := m.Go.FillVDLTarget(fieldTarget8, __VDLType_vdltool_GoConfig); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget7, fieldTarget8); err != nil {
return err
}
}
keyTarget9, fieldTarget10, err := fieldsTarget1.StartField("Java")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := m.Java.FillVDLTarget(fieldTarget10, __VDLType_vdltool_JavaConfig); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget9, fieldTarget10); err != nil {
return err
}
}
keyTarget11, fieldTarget12, err := fieldsTarget1.StartField("Javascript")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := m.Javascript.FillVDLTarget(fieldTarget12, __VDLType_vdltool_JavascriptConfig); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget11, fieldTarget12); err != nil {
return err
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *Config) MakeVDLTarget() vdl.Target {
return &ConfigTarget{Value: m}
}
type ConfigTarget struct {
Value *Config
genLanguagesTarget unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget
goTarget GoConfigTarget
javaTarget JavaConfigTarget
javascriptTarget JavascriptConfigTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *ConfigTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if !vdl.Compatible(tt, __VDLType_vdltool_Config) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType_vdltool_Config)
}
return t, nil
}
func (t *ConfigTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "GenLanguages":
t.genLanguagesTarget.Value = &t.Value.GenLanguages
target, err := &t.genLanguagesTarget, error(nil)
return nil, target, err
case "Go":
t.goTarget.Value = &t.Value.Go
target, err := &t.goTarget, error(nil)
return nil, target, err
case "Java":
t.javaTarget.Value = &t.Value.Java
target, err := &t.javaTarget, error(nil)
return nil, target, err
case "Javascript":
t.javascriptTarget.Value = &t.Value.Javascript
target, err := &t.javascriptTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_Config)
}
}
func (t *ConfigTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *ConfigTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// map[GenLanguage]struct{}
type unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget struct {
Value *map[GenLanguage]struct{}
currKey GenLanguage
keyTarget GenLanguageTarget
vdl.TargetBase
vdl.SetTargetBase
}
func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
if !vdl.Compatible(tt, __VDLType1) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType1)
}
*t.Value = make(map[GenLanguage]struct{})
return t, nil
}
func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = GenLanguageGo
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget) FinishKey(key vdl.Target) error {
(*t.Value)[t.currKey] = struct{}{}
return nil
}
func (t *unnamed_7365745b76646c746f6f6c2e47656e4c616e677561676520656e756d7b476f3b4a6176613b4a6176617363726970747d5dTarget) FinishSet(list vdl.SetTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
type GenLanguageTarget struct {
Value *GenLanguage
vdl.TargetBase
}
func (t *GenLanguageTarget) FromEnumLabel(src string, tt *vdl.Type) error {
if !vdl.Compatible(tt, __VDLType_vdltool_GenLanguage) {
return fmt.Errorf("type %v incompatible with %v", tt, __VDLType_vdltool_GenLanguage)
}
switch src {
case "Go":
*t.Value = 0
case "Java":
*t.Value = 1
case "Javascript":
*t.Value = 2
default:
return fmt.Errorf("label %s not in enum %v", src, __VDLType_vdltool_GenLanguage)
}
return nil
}
type GoConfigTarget struct {
Value *GoConfig
wireToNativeTypesTarget unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *GoConfigTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if !vdl.Compatible(tt, __VDLType_vdltool_GoConfig) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType_vdltool_GoConfig)
}
return t, nil
}
func (t *GoConfigTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "WireToNativeTypes":
t.wireToNativeTypesTarget.Value = &t.Value.WireToNativeTypes
target, err := &t.wireToNativeTypesTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_GoConfig)
}
}
func (t *GoConfigTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *GoConfigTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// map[string]GoType
type unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget struct {
Value *map[string]GoType
currKey string
currElem GoType
keyTarget vdl.StringTarget
elemTarget GoTypeTarget
vdl.TargetBase
vdl.MapTargetBase
}
func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if !vdl.Compatible(tt, __VDLType3) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType3)
}
*t.Value = make(map[string]GoType)
return t, nil
}
func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = ""
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = GoType{}
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *unnamed_6d61705b737472696e675d76646c746f6f6c2e476f54797065207374727563747b5479706520737472696e673b496d706f727473205b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677d7dTarget) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
type GoTypeTarget struct {
Value *GoType
typeTarget vdl.StringTarget
importsTarget unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *GoTypeTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if !vdl.Compatible(tt, __VDLType_vdltool_GoType) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType_vdltool_GoType)
}
return t, nil
}
func (t *GoTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Type":
t.typeTarget.Value = &t.Value.Type
target, err := &t.typeTarget, error(nil)
return nil, target, err
case "Imports":
t.importsTarget.Value = &t.Value.Imports
target, err := &t.importsTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_GoType)
}
}
func (t *GoTypeTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *GoTypeTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// []GoImport
type unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget struct {
Value *[]GoImport
elemTarget GoImportTarget
vdl.TargetBase
vdl.ListTargetBase
}
func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if !vdl.Compatible(tt, __VDLType2) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType2)
}
if cap(*t.Value) < len {
*t.Value = make([]GoImport, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *unnamed_5b5d76646c746f6f6c2e476f496d706f7274207374727563747b5061746820737472696e673b4e616d6520737472696e677dTarget) FinishList(elem vdl.ListTarget) error {
return nil
}
type GoImportTarget struct {
Value *GoImport
pathTarget vdl.StringTarget
nameTarget vdl.StringTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *GoImportTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if !vdl.Compatible(tt, __VDLType_vdltool_GoImport) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType_vdltool_GoImport)
}
return t, nil
}
func (t *GoImportTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Path":
t.pathTarget.Value = &t.Value.Path
target, err := &t.pathTarget, error(nil)
return nil, target, err
case "Name":
t.nameTarget.Value = &t.Value.Name
target, err := &t.nameTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_GoImport)
}
}
func (t *GoImportTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *GoImportTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
type JavaConfigTarget struct {
Value *JavaConfig
wireToNativeTypesTarget unnamed_6d61705b737472696e675d737472696e67Target
wireTypeRenamesTarget unnamed_6d61705b737472696e675d737472696e67Target
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *JavaConfigTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if !vdl.Compatible(tt, __VDLType_vdltool_JavaConfig) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType_vdltool_JavaConfig)
}
return t, nil
}
func (t *JavaConfigTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "WireToNativeTypes":
t.wireToNativeTypesTarget.Value = &t.Value.WireToNativeTypes
target, err := &t.wireToNativeTypesTarget, error(nil)
return nil, target, err
case "WireTypeRenames":
t.wireTypeRenamesTarget.Value = &t.Value.WireTypeRenames
target, err := &t.wireTypeRenamesTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_JavaConfig)
}
}
func (t *JavaConfigTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *JavaConfigTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// map[string]string
type unnamed_6d61705b737472696e675d737472696e67Target struct {
Value *map[string]string
currKey string
currElem string
keyTarget vdl.StringTarget
elemTarget vdl.StringTarget
vdl.TargetBase
vdl.MapTargetBase
}
func (t *unnamed_6d61705b737472696e675d737472696e67Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if !vdl.Compatible(tt, __VDLType4) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType4)
}
*t.Value = make(map[string]string)
return t, nil
}
func (t *unnamed_6d61705b737472696e675d737472696e67Target) StartKey() (key vdl.Target, _ error) {
t.currKey = ""
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *unnamed_6d61705b737472696e675d737472696e67Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = ""
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *unnamed_6d61705b737472696e675d737472696e67Target) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *unnamed_6d61705b737472696e675d737472696e67Target) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
type JavascriptConfigTarget struct {
Value *JavascriptConfig
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *JavascriptConfigTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if !vdl.Compatible(tt, __VDLType_vdltool_JavascriptConfig) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType_vdltool_JavascriptConfig)
}
return t, nil
}
func (t *JavascriptConfigTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
default:
return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_vdltool_JavascriptConfig)
}
}
func (t *JavascriptConfigTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *JavascriptConfigTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// GenLanguage enumerates the known code generation languages.
type GenLanguage int
const (
GenLanguageGo GenLanguage = iota
GenLanguageJava
GenLanguageJavascript
)
// GenLanguageAll holds all labels for GenLanguage.
var GenLanguageAll = [...]GenLanguage{GenLanguageGo, GenLanguageJava, GenLanguageJavascript}
// GenLanguageFromString creates a GenLanguage from a string label.
func GenLanguageFromString(label string) (x GenLanguage, err error) {
err = x.Set(label)
return
}
// Set assigns label to x.
func (x *GenLanguage) Set(label string) error {
switch label {
case "Go", "go":
*x = GenLanguageGo
return nil
case "Java", "java":
*x = GenLanguageJava
return nil
case "Javascript", "javascript":
*x = GenLanguageJavascript
return nil
}
*x = -1
return fmt.Errorf("unknown label %q in vdltool.GenLanguage", label)
}
// String returns the string label of x.
func (x GenLanguage) String() string {
switch x {
case GenLanguageGo:
return "Go"
case GenLanguageJava:
return "Java"
case GenLanguageJavascript:
return "Javascript"
}
return ""
}
func (GenLanguage) __VDLReflect(struct {
Name string `vdl:"vdltool.GenLanguage"`
Enum struct{ Go, Java, Javascript string }
}) {
}
func (m *GenLanguage) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromEnumLabel((*m).String(), __VDLType_vdltool_GenLanguage); err != nil {
return err
}
return nil
}
func (m *GenLanguage) MakeVDLTarget() vdl.Target {
return &GenLanguageTarget{Value: m}
}
// GoConfig specifies go specific configuration.
type GoConfig struct {
// WireToNativeTypes specifies the mapping from a VDL wire type to its Go
// native type representation. This is rarely used and easy to configure
// incorrectly; usage is currently restricted to packages that are explicitly
// whitelisted.
//
// WireToNativeTypes are meant for scenarios where there is an idiomatic Go
// type used in your code, but you need a standard VDL representation for wire
// compatibility. E.g. the VDL time package defines Duration and Time for
// wire compatibility, but we want the generated code to use the standard Go
// time package.
//
// The key of the map is the name of the VDL type (aka WireType), which must
// be defined in the vdl package associated with the vdl.config file.
//
// The code generator assumes the existence of a pair of conversion functions
// converting between the wire and native types, and will automatically call
// vdl.RegisterNative with these function names.
//
// Assuming the name of the WireType is Foo:
// func fooToNative(x Foo, n *Native) error
// func fooFromNative(x *Foo, n Native) error
WireToNativeTypes map[string]GoType
}
func (GoConfig) __VDLReflect(struct {
Name string `vdl:"vdltool.GoConfig"`
}) {
}
func (m *GoConfig) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if __VDLType_vdltool_GoConfig == nil || __VDLType5 == nil {
panic("Initialization order error: types generated for FillVDLTarget not initialized. Consider moving caller to an init() block.")
}
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("WireToNativeTypes")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
mapTarget4, err := fieldTarget3.StartMap(__VDLType3, len(m.WireToNativeTypes))
if err != nil {
return err
}
for key6, value8 := range m.WireToNativeTypes {
keyTarget5, err := mapTarget4.StartKey()
if err != nil {
return err
}
if err := keyTarget5.FromString(string(key6), vdl.StringType); err != nil {
return err
}
valueTarget7, err := mapTarget4.FinishKeyStartField(keyTarget5)
if err != nil {
return err
}
if err := value8.FillVDLTarget(valueTarget7, __VDLType_vdltool_GoType); err != nil {
return err
}
if err := mapTarget4.FinishField(keyTarget5, valueTarget7); err != nil {
return err
}
}
if err := fieldTarget3.FinishMap(mapTarget4); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *GoConfig) MakeVDLTarget() vdl.Target {
return &GoConfigTarget{Value: m}
}
// GoType describes the Go type information associated with a VDL type.
// See v.io/x/ref/lib/vdl/testdata/native for examples.
type GoType struct {
// Type is the Go type to use in generated code, instead of the VDL type. If
// the Go type requires additional imports, specify the type using the
// standard local package name here, and also specify the import package in
// Imports.
Type string
// Imports are the Go imports to use in generated code, required by the Type.
Imports []GoImport
}
func (GoType) __VDLReflect(struct {
Name string `vdl:"vdltool.GoType"`
}) {
}
func (m *GoType) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if __VDLType_vdltool_GoType == nil || __VDLType6 == nil {
panic("Initialization order error: types generated for FillVDLTarget not initialized. Consider moving caller to an init() block.")
}
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Type")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := fieldTarget3.FromString(string(m.Type), vdl.StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
keyTarget4, fieldTarget5, err := fieldsTarget1.StartField("Imports")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
listTarget6, err := fieldTarget5.StartList(__VDLType2, len(m.Imports))
if err != nil {
return err
}
for i, elem8 := range m.Imports {
elemTarget7, err := listTarget6.StartElem(i)
if err != nil {
return err
}
if err := elem8.FillVDLTarget(elemTarget7, __VDLType_vdltool_GoImport); err != nil {
return err
}
if err := listTarget6.FinishElem(elemTarget7); err != nil {
return err
}
}
if err := fieldTarget5.FinishList(listTarget6); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget4, fieldTarget5); err != nil {
return err
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *GoType) MakeVDLTarget() vdl.Target {
return &GoTypeTarget{Value: m}
}
// GoImport describes Go import information.
type GoImport struct {
// Path is the package path that uniquely identifies the imported package.
Path string
// Name is the name of the package identified by Path. Due to Go conventions,
// it is typically just the basename of Path, but may be set to something
// different if the imported package doesn't follow Go conventions.
Name string
}
func (GoImport) __VDLReflect(struct {
Name string `vdl:"vdltool.GoImport"`
}) {
}
func (m *GoImport) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if __VDLType_vdltool_GoImport == nil || __VDLType7 == nil {
panic("Initialization order error: types generated for FillVDLTarget not initialized. Consider moving caller to an init() block.")
}
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Path")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := fieldTarget3.FromString(string(m.Path), vdl.StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
keyTarget4, fieldTarget5, err := fieldsTarget1.StartField("Name")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := fieldTarget5.FromString(string(m.Name), vdl.StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget4, fieldTarget5); err != nil {
return err
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *GoImport) MakeVDLTarget() vdl.Target {
return &GoImportTarget{Value: m}
}
// JavaConfig specifies java specific configuration.
type JavaConfig struct {
// WireToNativeTypes specifies the mapping from a VDL wire type to its Java
// native type representation. This is rarely used and easy to configure
// incorrectly; usage is currently restricted to packages that are explicitly
// whitelisted.
//
// WireToNativeTypes are meant for scenarios where there is an idiomatic Java
// type used in your code, but you need a standard VDL representation for wire
// compatibility. E.g. the VDL time package defines Duration and Time for
// wire compatibility, but we want the generated code to use the org.joda.time
// package.
//
// The key of the map is the name of the VDL type (aka WireType), which must
// be defined in the vdl package associated with the vdl.config file.
//
// The code generator assumes that the conversion functions will be registered
// in java vdl package.
WireToNativeTypes map[string]string
// WireTypeRenames specifies the mapping from a VDL wire type name to its
// Java native type name.
//
// WireTypeRenames are meant for scenarios where the VDL wire name
// conflicts in some way with the Java native names, e.g., a VDL Integer
// type could be named VInteger for clarity.
//
// When combined with WireToNativeTypes, this feature allows us to attach
// functions to VDL types. For example, we may rename AccessList VDL type
// into WireAccessList and then map WireAccessList to our Java native type
// AccessList which defines functions on the VDL data.
//
// The key of the map is the name of the VDL wire type, which must be
// defined in the vdl package associated with the vdl.config file.
WireTypeRenames map[string]string
}
func (JavaConfig) __VDLReflect(struct {
Name string `vdl:"vdltool.JavaConfig"`
}) {
}
func (m *JavaConfig) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if __VDLType_vdltool_JavaConfig == nil || __VDLType8 == nil {
panic("Initialization order error: types generated for FillVDLTarget not initialized. Consider moving caller to an init() block.")
}
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("WireToNativeTypes")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
mapTarget4, err := fieldTarget3.StartMap(__VDLType4, len(m.WireToNativeTypes))
if err != nil {
return err
}
for key6, value8 := range m.WireToNativeTypes {
keyTarget5, err := mapTarget4.StartKey()
if err != nil {
return err
}
if err := keyTarget5.FromString(string(key6), vdl.StringType); err != nil {
return err
}
valueTarget7, err := mapTarget4.FinishKeyStartField(keyTarget5)
if err != nil {
return err
}
if err := valueTarget7.FromString(string(value8), vdl.StringType); err != nil {
return err
}
if err := mapTarget4.FinishField(keyTarget5, valueTarget7); err != nil {
return err
}
}
if err := fieldTarget3.FinishMap(mapTarget4); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
keyTarget9, fieldTarget10, err := fieldsTarget1.StartField("WireTypeRenames")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
mapTarget11, err := fieldTarget10.StartMap(__VDLType4, len(m.WireTypeRenames))
if err != nil {
return err
}
for key13, value15 := range m.WireTypeRenames {
keyTarget12, err := mapTarget11.StartKey()
if err != nil {
return err
}
if err := keyTarget12.FromString(string(key13), vdl.StringType); err != nil {
return err
}
valueTarget14, err := mapTarget11.FinishKeyStartField(keyTarget12)
if err != nil {
return err
}
if err := valueTarget14.FromString(string(value15), vdl.StringType); err != nil {
return err
}
if err := mapTarget11.FinishField(keyTarget12, valueTarget14); err != nil {
return err
}
}
if err := fieldTarget10.FinishMap(mapTarget11); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget9, fieldTarget10); err != nil {
return err
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *JavaConfig) MakeVDLTarget() vdl.Target {
return &JavaConfigTarget{Value: m}
}
// JavascriptConfig specifies javascript specific configuration.
type JavascriptConfig struct {
}
func (JavascriptConfig) __VDLReflect(struct {
Name string `vdl:"vdltool.JavascriptConfig"`
}) {
}
func (m *JavascriptConfig) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if __VDLType_vdltool_JavascriptConfig == nil || __VDLType9 == nil {
panic("Initialization order error: types generated for FillVDLTarget not initialized. Consider moving caller to an init() block.")
}
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *JavascriptConfig) MakeVDLTarget() vdl.Target {
return &JavascriptConfigTarget{Value: m}
}
func init() {
vdl.Register((*Config)(nil))
vdl.Register((*GenLanguage)(nil))
vdl.Register((*GoConfig)(nil))
vdl.Register((*GoType)(nil))
vdl.Register((*GoImport)(nil))
vdl.Register((*JavaConfig)(nil))
vdl.Register((*JavascriptConfig)(nil))
}
var __VDLType0 *vdl.Type = vdl.TypeOf((*Config)(nil))
var __VDLType5 *vdl.Type = vdl.TypeOf((*GoConfig)(nil))
var __VDLType7 *vdl.Type = vdl.TypeOf((*GoImport)(nil))
var __VDLType6 *vdl.Type = vdl.TypeOf((*GoType)(nil))
var __VDLType8 *vdl.Type = vdl.TypeOf((*JavaConfig)(nil))
var __VDLType9 *vdl.Type = vdl.TypeOf((*JavascriptConfig)(nil))
var __VDLType2 *vdl.Type = vdl.TypeOf([]GoImport(nil))
var __VDLType4 *vdl.Type = vdl.TypeOf(map[string]string(nil))
var __VDLType3 *vdl.Type = vdl.TypeOf(map[string]GoType(nil))
var __VDLType1 *vdl.Type = vdl.TypeOf(map[GenLanguage]struct{}(nil))
var __VDLType_vdltool_Config *vdl.Type = vdl.TypeOf(Config{})
var __VDLType_vdltool_GenLanguage *vdl.Type = vdl.TypeOf(GenLanguageGo)
var __VDLType_vdltool_GoConfig *vdl.Type = vdl.TypeOf(GoConfig{})
var __VDLType_vdltool_GoImport *vdl.Type = vdl.TypeOf(GoImport{})
var __VDLType_vdltool_GoType *vdl.Type = vdl.TypeOf(GoType{})
var __VDLType_vdltool_JavaConfig *vdl.Type = vdl.TypeOf(JavaConfig{})
var __VDLType_vdltool_JavascriptConfig *vdl.Type = vdl.TypeOf(JavascriptConfig{})
func __VDLEnsureNativeBuilt() {
}