blob: 0f98dd4ffef9b1eb46947be3f9fb4a390da81780 [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: types
package types
import (
"fmt"
"reflect"
"v.io/v23/vdl"
"v.io/v23/vdl/vdlconv"
)
var _ = __VDLInit() // Must be first; see __VDLInit comments for details.
//////////////////////////////////////////////////
// Type definitions
// TestCase represents an individual testcase for vom encoding and decoding.
type TestCase struct {
Name string // Name of the testcase
Value *vdl.Value // Value to test
TypeString string // The string representation of the Type
Hex string // Hex pattern representing vom encoding
HexVersion string // Hex pattern representing vom encoding of Version
HexType string // Hex pattern representing vom encoding of Type
HexValue string // Hex pattern representing vom encoding of Value
}
func (TestCase) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.TestCase"`
}) {
}
func (m *TestCase) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.Name == "")
if var4 {
if err := fieldsTarget1.ZeroField("Name"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Name")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromString(string(m.Name), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := m.Value == nil || (m.Value.Kind() == vdl.Any && m.Value.IsZero())
if var7 {
if err := fieldsTarget1.ZeroField("Value"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("Value")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := vdl.FromValue(fieldTarget6, m.Value); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.TypeString == "")
if var10 {
if err := fieldsTarget1.ZeroField("TypeString"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("TypeString")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget9.FromString(string(m.TypeString), tt.NonOptional().Field(2).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
var13 := (m.Hex == "")
if var13 {
if err := fieldsTarget1.ZeroField("Hex"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget11, fieldTarget12, err := fieldsTarget1.StartField("Hex")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget12.FromString(string(m.Hex), tt.NonOptional().Field(3).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget11, fieldTarget12); err != nil {
return err
}
}
}
var16 := (m.HexVersion == "")
if var16 {
if err := fieldsTarget1.ZeroField("HexVersion"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget14, fieldTarget15, err := fieldsTarget1.StartField("HexVersion")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget15.FromString(string(m.HexVersion), tt.NonOptional().Field(4).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget14, fieldTarget15); err != nil {
return err
}
}
}
var19 := (m.HexType == "")
if var19 {
if err := fieldsTarget1.ZeroField("HexType"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget17, fieldTarget18, err := fieldsTarget1.StartField("HexType")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget18.FromString(string(m.HexType), tt.NonOptional().Field(5).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget17, fieldTarget18); err != nil {
return err
}
}
}
var22 := (m.HexValue == "")
if var22 {
if err := fieldsTarget1.ZeroField("HexValue"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget20, fieldTarget21, err := fieldsTarget1.StartField("HexValue")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget21.FromString(string(m.HexValue), tt.NonOptional().Field(6).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget20, fieldTarget21); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *TestCase) MakeVDLTarget() vdl.Target {
return &TestCaseTarget{Value: m}
}
type TestCaseTarget struct {
Value *TestCase
nameTarget vdl.StringTarget
typeStringTarget vdl.StringTarget
hexTarget vdl.StringTarget
hexVersionTarget vdl.StringTarget
hexTypeTarget vdl.StringTarget
hexValueTarget vdl.StringTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *TestCaseTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*TestCase)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *TestCaseTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Name":
t.nameTarget.Value = &t.Value.Name
target, err := &t.nameTarget, error(nil)
return nil, target, err
case "Value":
target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Value))
return nil, target, err
case "TypeString":
t.typeStringTarget.Value = &t.Value.TypeString
target, err := &t.typeStringTarget, error(nil)
return nil, target, err
case "Hex":
t.hexTarget.Value = &t.Value.Hex
target, err := &t.hexTarget, error(nil)
return nil, target, err
case "HexVersion":
t.hexVersionTarget.Value = &t.Value.HexVersion
target, err := &t.hexVersionTarget, error(nil)
return nil, target, err
case "HexType":
t.hexTypeTarget.Value = &t.Value.HexType
target, err := &t.hexTypeTarget, error(nil)
return nil, target, err
case "HexValue":
t.hexValueTarget.Value = &t.Value.HexValue
target, err := &t.hexValueTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.TestCase", name)
}
}
func (t *TestCaseTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *TestCaseTarget) ZeroField(name string) error {
switch name {
case "Name":
t.Value.Name = ""
return nil
case "Value":
t.Value.Value = vdl.ZeroValue(vdl.AnyType)
return nil
case "TypeString":
t.Value.TypeString = ""
return nil
case "Hex":
t.Value.Hex = ""
return nil
case "HexVersion":
t.Value.HexVersion = ""
return nil
case "HexType":
t.Value.HexType = ""
return nil
case "HexValue":
t.Value.HexValue = ""
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.TestCase", name)
}
}
func (t *TestCaseTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x TestCase) VDLIsZero() (bool, error) {
if x.Name != "" {
return false, nil
}
var isZeroValue bool
if x.Value != nil {
var err error
if isZeroValue, err = x.Value.VDLIsZero(); err != nil {
return false, err
}
}
if x.Value != nil && !isZeroValue {
return false, nil
}
if x.TypeString != "" {
return false, nil
}
if x.Hex != "" {
return false, nil
}
if x.HexVersion != "" {
return false, nil
}
if x.HexType != "" {
return false, nil
}
if x.HexValue != "" {
return false, nil
}
return true, nil
}
func (x TestCase) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*TestCase)(nil)).Elem()); err != nil {
return err
}
if x.Name != "" {
if err := enc.NextField("Name"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.Name); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
var isZeroValue bool
if x.Value != nil {
var err error
if isZeroValue, err = x.Value.VDLIsZero(); err != nil {
return err
}
}
if x.Value != nil && !isZeroValue {
if err := enc.NextField("Value"); err != nil {
return err
}
if err := enc.StartValue(vdl.AnyType); err != nil {
return err
}
switch {
case x.Value.IsNil():
if err := enc.NilValue(x.Value.Type()); err != nil {
return err
}
default:
if err := x.Value.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.TypeString != "" {
if err := enc.NextField("TypeString"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.TypeString); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Hex != "" {
if err := enc.NextField("Hex"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.Hex); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.HexVersion != "" {
if err := enc.NextField("HexVersion"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.HexVersion); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.HexType != "" {
if err := enc.NextField("HexType"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.HexType); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.HexValue != "" {
if err := enc.NextField("HexValue"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.HexValue); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *TestCase) VDLRead(dec vdl.Decoder) error {
*x = TestCase{
Value: vdl.ZeroValue(vdl.AnyType),
}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Name":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Name, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Value":
x.Value = new(vdl.Value)
if err := x.Value.VDLRead(dec); err != nil {
return err
}
case "TypeString":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.TypeString, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Hex":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Hex, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "HexVersion":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.HexVersion, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "HexType":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.HexType, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "HexValue":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.HexValue, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
// vomdata config types
type ConvertGroup struct {
Name string
PrimaryType *vdl.Type
Values []*vdl.Value
}
func (ConvertGroup) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.ConvertGroup"`
}) {
}
func (m *ConvertGroup) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.Name == "")
if var4 {
if err := fieldsTarget1.ZeroField("Name"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Name")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromString(string(m.Name), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.PrimaryType == nil || m.PrimaryType == vdl.AnyType)
if var7 {
if err := fieldsTarget1.ZeroField("PrimaryType"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("PrimaryType")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
typeObjectVal8 := m.PrimaryType
if typeObjectVal8 == nil {
typeObjectVal8 = vdl.AnyType
}
if err := fieldTarget6.FromTypeObject(typeObjectVal8); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var var11 bool
if len(m.Values) == 0 {
var11 = true
}
if var11 {
if err := fieldsTarget1.ZeroField("Values"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget9, fieldTarget10, err := fieldsTarget1.StartField("Values")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
listTarget12, err := fieldTarget10.StartList(tt.NonOptional().Field(2).Type, len(m.Values))
if err != nil {
return err
}
for i, elem14 := range m.Values {
elemTarget13, err := listTarget12.StartElem(i)
if err != nil {
return err
}
if err := vdl.FromValue(elemTarget13, elem14); err != nil {
return err
}
if err := listTarget12.FinishElem(elemTarget13); err != nil {
return err
}
}
if err := fieldTarget10.FinishList(listTarget12); 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 *ConvertGroup) MakeVDLTarget() vdl.Target {
return &ConvertGroupTarget{Value: m}
}
type ConvertGroupTarget struct {
Value *ConvertGroup
nameTarget vdl.StringTarget
primaryTypeTarget vdl.TypeObjectTarget
valuesTarget __VDLTarget1_list
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *ConvertGroupTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*ConvertGroup)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *ConvertGroupTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Name":
t.nameTarget.Value = &t.Value.Name
target, err := &t.nameTarget, error(nil)
return nil, target, err
case "PrimaryType":
t.primaryTypeTarget.Value = &t.Value.PrimaryType
target, err := &t.primaryTypeTarget, error(nil)
return nil, target, err
case "Values":
t.valuesTarget.Value = &t.Value.Values
target, err := &t.valuesTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.ConvertGroup", name)
}
}
func (t *ConvertGroupTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *ConvertGroupTarget) ZeroField(name string) error {
switch name {
case "Name":
t.Value.Name = ""
return nil
case "PrimaryType":
t.Value.PrimaryType = vdl.AnyType
return nil
case "Values":
t.Value.Values = []*vdl.Value(nil)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.ConvertGroup", name)
}
}
func (t *ConvertGroupTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// []*vdl.Value
type __VDLTarget1_list struct {
Value *[]*vdl.Value
vdl.TargetBase
vdl.ListTargetBase
}
func (t *__VDLTarget1_list) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*[]*vdl.Value)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make([]*vdl.Value, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *__VDLTarget1_list) StartElem(index int) (elem vdl.Target, _ error) {
target, err := vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
return target, err
}
func (t *__VDLTarget1_list) FinishElem(elem vdl.Target) error {
return nil
}
func (t *__VDLTarget1_list) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x ConvertGroup) VDLIsZero() (bool, error) {
if x.Name != "" {
return false, nil
}
if x.PrimaryType != nil && x.PrimaryType != vdl.AnyType {
return false, nil
}
if len(x.Values) != 0 {
return false, nil
}
return true, nil
}
func (x ConvertGroup) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ConvertGroup)(nil)).Elem()); err != nil {
return err
}
if x.Name != "" {
if err := enc.NextField("Name"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.Name); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.PrimaryType != nil && x.PrimaryType != vdl.AnyType {
if err := enc.NextField("PrimaryType"); err != nil {
return err
}
if err := x.PrimaryType.VDLWrite(enc); err != nil {
return err
}
}
if len(x.Values) != 0 {
if err := enc.NextField("Values"); err != nil {
return err
}
if err := __VDLWriteAnon_list_1(enc, x.Values); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_list_1(enc vdl.Encoder, x []*vdl.Value) error {
if err := enc.StartValue(vdl.TypeOf((*[]*vdl.Value)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.AnyType); err != nil {
return err
}
switch {
case x[i] == nil:
if err := enc.NilValue(vdl.AnyType); err != nil {
return err
}
case x[i].IsNil():
if err := enc.NilValue(x[i].Type()); err != nil {
return err
}
default:
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *ConvertGroup) VDLRead(dec vdl.Decoder) error {
*x = ConvertGroup{
PrimaryType: vdl.AnyType,
}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Name":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Name, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "PrimaryType":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.PrimaryType, err = dec.DecodeTypeObject(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Values":
if err := __VDLReadAnon_list_1(dec, &x.Values); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
func __VDLReadAnon_list_1(dec vdl.Decoder, x *[]*vdl.Value) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make([]*vdl.Value, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem *vdl.Value
elem = new(vdl.Value)
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type VomdataStruct struct {
EncodeDecodeData map[byte][]*vdl.Value // map from min required VOM version to test values
CompatData map[string][]*vdl.Type
ConvertData map[string][]ConvertGroup
}
func (VomdataStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.VomdataStruct"`
}) {
}
func (m *VomdataStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var var4 bool
if len(m.EncodeDecodeData) == 0 {
var4 = true
}
if var4 {
if err := fieldsTarget1.ZeroField("EncodeDecodeData"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("EncodeDecodeData")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
mapTarget5, err := fieldTarget3.StartMap(tt.NonOptional().Field(0).Type, len(m.EncodeDecodeData))
if err != nil {
return err
}
for key7, value9 := range m.EncodeDecodeData {
keyTarget6, err := mapTarget5.StartKey()
if err != nil {
return err
}
if err := keyTarget6.FromUint(uint64(key7), tt.NonOptional().Field(0).Type.Key()); err != nil {
return err
}
valueTarget8, err := mapTarget5.FinishKeyStartField(keyTarget6)
if err != nil {
return err
}
listTarget10, err := valueTarget8.StartList(tt.NonOptional().Field(0).Type.Elem(), len(value9))
if err != nil {
return err
}
for i, elem12 := range value9 {
elemTarget11, err := listTarget10.StartElem(i)
if err != nil {
return err
}
if err := vdl.FromValue(elemTarget11, elem12); err != nil {
return err
}
if err := listTarget10.FinishElem(elemTarget11); err != nil {
return err
}
}
if err := valueTarget8.FinishList(listTarget10); err != nil {
return err
}
if err := mapTarget5.FinishField(keyTarget6, valueTarget8); err != nil {
return err
}
}
if err := fieldTarget3.FinishMap(mapTarget5); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var var15 bool
if len(m.CompatData) == 0 {
var15 = true
}
if var15 {
if err := fieldsTarget1.ZeroField("CompatData"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget13, fieldTarget14, err := fieldsTarget1.StartField("CompatData")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
mapTarget16, err := fieldTarget14.StartMap(tt.NonOptional().Field(1).Type, len(m.CompatData))
if err != nil {
return err
}
for key18, value20 := range m.CompatData {
keyTarget17, err := mapTarget16.StartKey()
if err != nil {
return err
}
if err := keyTarget17.FromString(string(key18), tt.NonOptional().Field(1).Type.Key()); err != nil {
return err
}
valueTarget19, err := mapTarget16.FinishKeyStartField(keyTarget17)
if err != nil {
return err
}
listTarget21, err := valueTarget19.StartList(tt.NonOptional().Field(1).Type.Elem(), len(value20))
if err != nil {
return err
}
for i, elem23 := range value20 {
elemTarget22, err := listTarget21.StartElem(i)
if err != nil {
return err
}
typeObjectVal24 := elem23
if typeObjectVal24 == nil {
typeObjectVal24 = vdl.AnyType
}
if err := elemTarget22.FromTypeObject(typeObjectVal24); err != nil {
return err
}
if err := listTarget21.FinishElem(elemTarget22); err != nil {
return err
}
}
if err := valueTarget19.FinishList(listTarget21); err != nil {
return err
}
if err := mapTarget16.FinishField(keyTarget17, valueTarget19); err != nil {
return err
}
}
if err := fieldTarget14.FinishMap(mapTarget16); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget13, fieldTarget14); err != nil {
return err
}
}
}
var var27 bool
if len(m.ConvertData) == 0 {
var27 = true
}
if var27 {
if err := fieldsTarget1.ZeroField("ConvertData"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget25, fieldTarget26, err := fieldsTarget1.StartField("ConvertData")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
mapTarget28, err := fieldTarget26.StartMap(tt.NonOptional().Field(2).Type, len(m.ConvertData))
if err != nil {
return err
}
for key30, value32 := range m.ConvertData {
keyTarget29, err := mapTarget28.StartKey()
if err != nil {
return err
}
if err := keyTarget29.FromString(string(key30), tt.NonOptional().Field(2).Type.Key()); err != nil {
return err
}
valueTarget31, err := mapTarget28.FinishKeyStartField(keyTarget29)
if err != nil {
return err
}
listTarget33, err := valueTarget31.StartList(tt.NonOptional().Field(2).Type.Elem(), len(value32))
if err != nil {
return err
}
for i, elem35 := range value32 {
elemTarget34, err := listTarget33.StartElem(i)
if err != nil {
return err
}
if err := elem35.FillVDLTarget(elemTarget34, tt.NonOptional().Field(2).Type.Elem().Elem()); err != nil {
return err
}
if err := listTarget33.FinishElem(elemTarget34); err != nil {
return err
}
}
if err := valueTarget31.FinishList(listTarget33); err != nil {
return err
}
if err := mapTarget28.FinishField(keyTarget29, valueTarget31); err != nil {
return err
}
}
if err := fieldTarget26.FinishMap(mapTarget28); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget25, fieldTarget26); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *VomdataStruct) MakeVDLTarget() vdl.Target {
return &VomdataStructTarget{Value: m}
}
type VomdataStructTarget struct {
Value *VomdataStruct
encodeDecodeDataTarget __VDLTarget2_map
compatDataTarget __VDLTarget3_map
convertDataTarget __VDLTarget4_map
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *VomdataStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*VomdataStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *VomdataStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "EncodeDecodeData":
t.encodeDecodeDataTarget.Value = &t.Value.EncodeDecodeData
target, err := &t.encodeDecodeDataTarget, error(nil)
return nil, target, err
case "CompatData":
t.compatDataTarget.Value = &t.Value.CompatData
target, err := &t.compatDataTarget, error(nil)
return nil, target, err
case "ConvertData":
t.convertDataTarget.Value = &t.Value.ConvertData
target, err := &t.convertDataTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.VomdataStruct", name)
}
}
func (t *VomdataStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *VomdataStructTarget) ZeroField(name string) error {
switch name {
case "EncodeDecodeData":
t.Value.EncodeDecodeData = map[byte][]*vdl.Value(nil)
return nil
case "CompatData":
t.Value.CompatData = map[string][]*vdl.Type(nil)
return nil
case "ConvertData":
t.Value.ConvertData = map[string][]ConvertGroup(nil)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.VomdataStruct", name)
}
}
func (t *VomdataStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// map[byte][]*vdl.Value
type __VDLTarget2_map struct {
Value *map[byte][]*vdl.Value
currKey byte
currElem []*vdl.Value
keyTarget vdl.ByteTarget
elemTarget __VDLTarget1_list
vdl.TargetBase
vdl.MapTargetBase
}
func (t *__VDLTarget2_map) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*map[byte][]*vdl.Value)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(map[byte][]*vdl.Value)
return t, nil
}
func (t *__VDLTarget2_map) StartKey() (key vdl.Target, _ error) {
t.currKey = byte(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *__VDLTarget2_map) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = []*vdl.Value(nil)
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *__VDLTarget2_map) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *__VDLTarget2_map) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
// map[string][]*vdl.Type
type __VDLTarget3_map struct {
Value *map[string][]*vdl.Type
currKey string
currElem []*vdl.Type
keyTarget vdl.StringTarget
elemTarget __VDLTarget5_list
vdl.TargetBase
vdl.MapTargetBase
}
func (t *__VDLTarget3_map) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*map[string][]*vdl.Type)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(map[string][]*vdl.Type)
return t, nil
}
func (t *__VDLTarget3_map) StartKey() (key vdl.Target, _ error) {
t.currKey = ""
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *__VDLTarget3_map) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = []*vdl.Type(nil)
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *__VDLTarget3_map) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *__VDLTarget3_map) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
// []*vdl.Type
type __VDLTarget5_list struct {
Value *[]*vdl.Type
elemTarget vdl.TypeObjectTarget
vdl.TargetBase
vdl.ListTargetBase
}
func (t *__VDLTarget5_list) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*[]*vdl.Type)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make([]*vdl.Type, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *__VDLTarget5_list) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *__VDLTarget5_list) FinishElem(elem vdl.Target) error {
return nil
}
func (t *__VDLTarget5_list) FinishList(elem vdl.ListTarget) error {
return nil
}
// map[string][]ConvertGroup
type __VDLTarget4_map struct {
Value *map[string][]ConvertGroup
currKey string
currElem []ConvertGroup
keyTarget vdl.StringTarget
elemTarget __VDLTarget6_list
vdl.TargetBase
vdl.MapTargetBase
}
func (t *__VDLTarget4_map) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*map[string][]ConvertGroup)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(map[string][]ConvertGroup)
return t, nil
}
func (t *__VDLTarget4_map) StartKey() (key vdl.Target, _ error) {
t.currKey = ""
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *__VDLTarget4_map) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = []ConvertGroup(nil)
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *__VDLTarget4_map) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *__VDLTarget4_map) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
// []ConvertGroup
type __VDLTarget6_list struct {
Value *[]ConvertGroup
elemTarget ConvertGroupTarget
vdl.TargetBase
vdl.ListTargetBase
}
func (t *__VDLTarget6_list) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*[]ConvertGroup)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make([]ConvertGroup, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *__VDLTarget6_list) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *__VDLTarget6_list) FinishElem(elem vdl.Target) error {
return nil
}
func (t *__VDLTarget6_list) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x VomdataStruct) VDLIsZero() (bool, error) {
if len(x.EncodeDecodeData) != 0 {
return false, nil
}
if len(x.CompatData) != 0 {
return false, nil
}
if len(x.ConvertData) != 0 {
return false, nil
}
return true, nil
}
func (x VomdataStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*VomdataStruct)(nil)).Elem()); err != nil {
return err
}
if len(x.EncodeDecodeData) != 0 {
if err := enc.NextField("EncodeDecodeData"); err != nil {
return err
}
if err := __VDLWriteAnon_map_2(enc, x.EncodeDecodeData); err != nil {
return err
}
}
if len(x.CompatData) != 0 {
if err := enc.NextField("CompatData"); err != nil {
return err
}
if err := __VDLWriteAnon_map_3(enc, x.CompatData); err != nil {
return err
}
}
if len(x.ConvertData) != 0 {
if err := enc.NextField("ConvertData"); err != nil {
return err
}
if err := __VDLWriteAnon_map_4(enc, x.ConvertData); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_map_2(enc vdl.Encoder, x map[byte][]*vdl.Value) error {
if err := enc.StartValue(vdl.TypeOf((*map[byte][]*vdl.Value)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*byte)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(key)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := __VDLWriteAnon_list_1(enc, elem); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_map_3(enc vdl.Encoder, x map[string][]*vdl.Type) error {
if err := enc.StartValue(vdl.TypeOf((*map[string][]*vdl.Type)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := __VDLWriteAnon_list_5(enc, elem); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_map_4(enc vdl.Encoder, x map[string][]ConvertGroup) error {
if err := enc.StartValue(vdl.TypeOf((*map[string][]ConvertGroup)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := __VDLWriteAnon_list_6(enc, elem); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_list_5(enc vdl.Encoder, x []*vdl.Type) error {
if err := enc.StartValue(vdl.TypeOf((*[]*vdl.Type)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_list_6(enc vdl.Encoder, x []ConvertGroup) error {
if err := enc.StartValue(vdl.TypeOf((*[]ConvertGroup)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *VomdataStruct) VDLRead(dec vdl.Decoder) error {
*x = VomdataStruct{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "EncodeDecodeData":
if err := __VDLReadAnon_map_2(dec, &x.EncodeDecodeData); err != nil {
return err
}
case "CompatData":
if err := __VDLReadAnon_map_3(dec, &x.CompatData); err != nil {
return err
}
case "ConvertData":
if err := __VDLReadAnon_map_4(dec, &x.ConvertData); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
func __VDLReadAnon_map_2(dec vdl.Decoder, x *map[byte][]*vdl.Value) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap map[byte][]*vdl.Value
if len := dec.LenHint(); len > 0 {
tmpMap = make(map[byte][]*vdl.Value, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key byte
{
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(8)
if err != nil {
return err
}
key = byte(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem []*vdl.Value
{
if err := __VDLReadAnon_list_1(dec, &elem); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(map[byte][]*vdl.Value)
}
tmpMap[key] = elem
}
}
func __VDLReadAnon_map_3(dec vdl.Decoder, x *map[string][]*vdl.Type) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap map[string][]*vdl.Type
if len := dec.LenHint(); len > 0 {
tmpMap = make(map[string][]*vdl.Type, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key string
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem []*vdl.Type
{
if err := __VDLReadAnon_list_5(dec, &elem); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(map[string][]*vdl.Type)
}
tmpMap[key] = elem
}
}
func __VDLReadAnon_map_4(dec vdl.Decoder, x *map[string][]ConvertGroup) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap map[string][]ConvertGroup
if len := dec.LenHint(); len > 0 {
tmpMap = make(map[string][]ConvertGroup, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key string
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem []ConvertGroup
{
if err := __VDLReadAnon_list_6(dec, &elem); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(map[string][]ConvertGroup)
}
tmpMap[key] = elem
}
}
func __VDLReadAnon_list_5(dec vdl.Decoder, x *[]*vdl.Type) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make([]*vdl.Type, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem *vdl.Type
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeTypeObject(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = append(*x, elem)
}
}
func __VDLReadAnon_list_6(dec vdl.Decoder, x *[]ConvertGroup) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make([]ConvertGroup, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem ConvertGroup
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
// Named Types
type NBool bool
func (NBool) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NBool"`
}) {
}
func (m *NBool) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromBool(bool((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NBool) MakeVDLTarget() vdl.Target {
return &NBoolTarget{Value: m}
}
type NBoolTarget struct {
Value *NBool
vdl.TargetBase
}
func (t *NBoolTarget) FromBool(src bool, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*NBool)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = NBool(src)
return nil
}
func (x NBool) VDLIsZero() (bool, error) {
return bool(!x), nil
}
func (x NBool) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NBool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(bool(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NBool) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeBool()
if err != nil {
return err
}
*x = NBool(tmp)
return dec.FinishValue()
}
type NString string
func (NString) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NString"`
}) {
}
func (m *NString) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromString(string((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NString) MakeVDLTarget() vdl.Target {
return &NStringTarget{Value: m}
}
type NStringTarget struct {
Value *NString
vdl.TargetBase
}
func (t *NStringTarget) FromString(src string, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*NString)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = NString(src)
return nil
}
func (x NString) VDLIsZero() (bool, error) {
return x == "", nil
}
func (x NString) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NString)(nil))); err != nil {
return err
}
if err := enc.EncodeString(string(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NString) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeString()
if err != nil {
return err
}
*x = NString(tmp)
return dec.FinishValue()
}
type NByteSlice []byte
func (NByteSlice) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NByteSlice"`
}) {
}
func (m *NByteSlice) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromBytes([]byte((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NByteSlice) MakeVDLTarget() vdl.Target {
return &NByteSliceTarget{Value: m}
}
type NByteSliceTarget struct {
Value *NByteSlice
vdl.TargetBase
}
func (t *NByteSliceTarget) FromBytes(src []byte, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*NByteSlice)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if len(src) == 0 {
*t.Value = nil
} else {
*t.Value = make([]byte, len(src))
copy(*t.Value, src)
}
return nil
}
func (x NByteSlice) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x NByteSlice) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NByteSlice)(nil))); err != nil {
return err
}
if err := enc.EncodeBytes([]byte(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NByteSlice) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
var bytes []byte
if err := dec.DecodeBytes(-1, &bytes); err != nil {
return err
}
*x = bytes
return dec.FinishValue()
}
type NByteArray [4]byte
func (NByteArray) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NByteArray"`
}) {
}
func (m *NByteArray) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromBytes([]byte((*m)[:]), tt); err != nil {
return err
}
return nil
}
func (m *NByteArray) MakeVDLTarget() vdl.Target {
return &NByteArrayTarget{Value: m}
}
type NByteArrayTarget struct {
Value *NByteArray
vdl.TargetBase
}
func (t *NByteArrayTarget) FromBytes(src []byte, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*NByteArray)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
copy((*t.Value)[:], src)
return nil
}
func (x NByteArray) VDLIsZero() (bool, error) {
return x == NByteArray{}, nil
}
func (x NByteArray) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NByteArray)(nil))); err != nil {
return err
}
if err := enc.EncodeBytes([]byte(x[:])); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NByteArray) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
bytes := x[:]
if err := dec.DecodeBytes(4, &bytes); err != nil {
return err
}
return dec.FinishValue()
}
type NByte byte
func (NByte) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NByte"`
}) {
}
func (m *NByte) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromUint(uint64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NByte) MakeVDLTarget() vdl.Target {
return &NByteTarget{Value: m}
}
type NByteTarget struct {
Value *NByte
vdl.TargetBase
}
func (t *NByteTarget) FromUint(src uint64, tt *vdl.Type) error {
val, err := vdlconv.Uint64ToUint8(src)
if err != nil {
return err
}
*t.Value = NByte(val)
return nil
}
func (t *NByteTarget) FromInt(src int64, tt *vdl.Type) error {
val, err := vdlconv.Int64ToUint8(src)
if err != nil {
return err
}
*t.Value = NByte(val)
return nil
}
func (t *NByteTarget) FromFloat(src float64, tt *vdl.Type) error {
val, err := vdlconv.Float64ToUint8(src)
if err != nil {
return err
}
*t.Value = NByte(val)
return nil
}
func (x NByte) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NByte) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NByte)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NByte) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(8)
if err != nil {
return err
}
*x = NByte(tmp)
return dec.FinishValue()
}
type NUint16 uint16
func (NUint16) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NUint16"`
}) {
}
func (m *NUint16) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromUint(uint64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NUint16) MakeVDLTarget() vdl.Target {
return &NUint16Target{Value: m}
}
type NUint16Target struct {
Value *NUint16
vdl.TargetBase
}
func (t *NUint16Target) FromUint(src uint64, tt *vdl.Type) error {
val, err := vdlconv.Uint64ToUint16(src)
if err != nil {
return err
}
*t.Value = NUint16(val)
return nil
}
func (t *NUint16Target) FromInt(src int64, tt *vdl.Type) error {
val, err := vdlconv.Int64ToUint16(src)
if err != nil {
return err
}
*t.Value = NUint16(val)
return nil
}
func (t *NUint16Target) FromFloat(src float64, tt *vdl.Type) error {
val, err := vdlconv.Float64ToUint16(src)
if err != nil {
return err
}
*t.Value = NUint16(val)
return nil
}
func (x NUint16) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NUint16) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NUint16)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NUint16) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(16)
if err != nil {
return err
}
*x = NUint16(tmp)
return dec.FinishValue()
}
type NUint32 uint32
func (NUint32) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NUint32"`
}) {
}
func (m *NUint32) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromUint(uint64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NUint32) MakeVDLTarget() vdl.Target {
return &NUint32Target{Value: m}
}
type NUint32Target struct {
Value *NUint32
vdl.TargetBase
}
func (t *NUint32Target) FromUint(src uint64, tt *vdl.Type) error {
val, err := vdlconv.Uint64ToUint32(src)
if err != nil {
return err
}
*t.Value = NUint32(val)
return nil
}
func (t *NUint32Target) FromInt(src int64, tt *vdl.Type) error {
val, err := vdlconv.Int64ToUint32(src)
if err != nil {
return err
}
*t.Value = NUint32(val)
return nil
}
func (t *NUint32Target) FromFloat(src float64, tt *vdl.Type) error {
val, err := vdlconv.Float64ToUint32(src)
if err != nil {
return err
}
*t.Value = NUint32(val)
return nil
}
func (x NUint32) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NUint32) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NUint32)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NUint32) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(32)
if err != nil {
return err
}
*x = NUint32(tmp)
return dec.FinishValue()
}
type NUint64 uint64
func (NUint64) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NUint64"`
}) {
}
func (m *NUint64) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromUint(uint64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NUint64) MakeVDLTarget() vdl.Target {
return &NUint64Target{Value: m}
}
type NUint64Target struct {
Value *NUint64
vdl.TargetBase
}
func (t *NUint64Target) FromUint(src uint64, tt *vdl.Type) error {
*t.Value = NUint64(src)
return nil
}
func (t *NUint64Target) FromInt(src int64, tt *vdl.Type) error {
val, err := vdlconv.Int64ToUint64(src)
if err != nil {
return err
}
*t.Value = NUint64(val)
return nil
}
func (t *NUint64Target) FromFloat(src float64, tt *vdl.Type) error {
val, err := vdlconv.Float64ToUint64(src)
if err != nil {
return err
}
*t.Value = NUint64(val)
return nil
}
func (x NUint64) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NUint64) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NUint64)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NUint64) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(64)
if err != nil {
return err
}
*x = NUint64(tmp)
return dec.FinishValue()
}
type NInt8 int8
func (NInt8) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NInt8"`
}) {
}
func (m *NInt8) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromInt(int64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NInt8) MakeVDLTarget() vdl.Target {
return &NInt8Target{Value: m}
}
type NInt8Target struct {
Value *NInt8
vdl.TargetBase
}
func (t *NInt8Target) FromUint(src uint64, tt *vdl.Type) error {
val, err := vdlconv.Uint64ToInt8(src)
if err != nil {
return err
}
*t.Value = NInt8(val)
return nil
}
func (t *NInt8Target) FromInt(src int64, tt *vdl.Type) error {
val, err := vdlconv.Int64ToInt8(src)
if err != nil {
return err
}
*t.Value = NInt8(val)
return nil
}
func (t *NInt8Target) FromFloat(src float64, tt *vdl.Type) error {
val, err := vdlconv.Float64ToInt8(src)
if err != nil {
return err
}
*t.Value = NInt8(val)
return nil
}
func (x NInt8) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NInt8) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NInt8)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(int64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NInt8) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(8)
if err != nil {
return err
}
*x = NInt8(tmp)
return dec.FinishValue()
}
type NInt16 int16
func (NInt16) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NInt16"`
}) {
}
func (m *NInt16) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromInt(int64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NInt16) MakeVDLTarget() vdl.Target {
return &NInt16Target{Value: m}
}
type NInt16Target struct {
Value *NInt16
vdl.TargetBase
}
func (t *NInt16Target) FromUint(src uint64, tt *vdl.Type) error {
val, err := vdlconv.Uint64ToInt16(src)
if err != nil {
return err
}
*t.Value = NInt16(val)
return nil
}
func (t *NInt16Target) FromInt(src int64, tt *vdl.Type) error {
val, err := vdlconv.Int64ToInt16(src)
if err != nil {
return err
}
*t.Value = NInt16(val)
return nil
}
func (t *NInt16Target) FromFloat(src float64, tt *vdl.Type) error {
val, err := vdlconv.Float64ToInt16(src)
if err != nil {
return err
}
*t.Value = NInt16(val)
return nil
}
func (x NInt16) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NInt16) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NInt16)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(int64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NInt16) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(16)
if err != nil {
return err
}
*x = NInt16(tmp)
return dec.FinishValue()
}
type NInt32 int32
func (NInt32) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NInt32"`
}) {
}
func (m *NInt32) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromInt(int64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NInt32) MakeVDLTarget() vdl.Target {
return &NInt32Target{Value: m}
}
type NInt32Target struct {
Value *NInt32
vdl.TargetBase
}
func (t *NInt32Target) FromUint(src uint64, tt *vdl.Type) error {
val, err := vdlconv.Uint64ToInt32(src)
if err != nil {
return err
}
*t.Value = NInt32(val)
return nil
}
func (t *NInt32Target) FromInt(src int64, tt *vdl.Type) error {
val, err := vdlconv.Int64ToInt32(src)
if err != nil {
return err
}
*t.Value = NInt32(val)
return nil
}
func (t *NInt32Target) FromFloat(src float64, tt *vdl.Type) error {
val, err := vdlconv.Float64ToInt32(src)
if err != nil {
return err
}
*t.Value = NInt32(val)
return nil
}
func (x NInt32) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NInt32) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NInt32)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(int64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NInt32) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(32)
if err != nil {
return err
}
*x = NInt32(tmp)
return dec.FinishValue()
}
type NInt64 int64
func (NInt64) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NInt64"`
}) {
}
func (m *NInt64) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromInt(int64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NInt64) MakeVDLTarget() vdl.Target {
return &NInt64Target{Value: m}
}
type NInt64Target struct {
Value *NInt64
vdl.TargetBase
}
func (t *NInt64Target) FromUint(src uint64, tt *vdl.Type) error {
val, err := vdlconv.Uint64ToInt64(src)
if err != nil {
return err
}
*t.Value = NInt64(val)
return nil
}
func (t *NInt64Target) FromInt(src int64, tt *vdl.Type) error {
*t.Value = NInt64(src)
return nil
}
func (t *NInt64Target) FromFloat(src float64, tt *vdl.Type) error {
val, err := vdlconv.Float64ToInt64(src)
if err != nil {
return err
}
*t.Value = NInt64(val)
return nil
}
func (x NInt64) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NInt64) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NInt64)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(int64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NInt64) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(64)
if err != nil {
return err
}
*x = NInt64(tmp)
return dec.FinishValue()
}
type NFloat32 float32
func (NFloat32) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NFloat32"`
}) {
}
func (m *NFloat32) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromFloat(float64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NFloat32) MakeVDLTarget() vdl.Target {
return &NFloat32Target{Value: m}
}
type NFloat32Target struct {
Value *NFloat32
vdl.TargetBase
}
func (t *NFloat32Target) FromUint(src uint64, tt *vdl.Type) error {
val, err := vdlconv.Uint64ToFloat32(src)
if err != nil {
return err
}
*t.Value = NFloat32(val)
return nil
}
func (t *NFloat32Target) FromInt(src int64, tt *vdl.Type) error {
val, err := vdlconv.Int64ToFloat32(src)
if err != nil {
return err
}
*t.Value = NFloat32(val)
return nil
}
func (t *NFloat32Target) FromFloat(src float64, tt *vdl.Type) error {
val, err := vdlconv.Float64ToFloat32(src)
if err != nil {
return err
}
*t.Value = NFloat32(val)
return nil
}
func (x NFloat32) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NFloat32) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NFloat32)(nil))); err != nil {
return err
}
if err := enc.EncodeFloat(float64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NFloat32) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeFloat(32)
if err != nil {
return err
}
*x = NFloat32(tmp)
return dec.FinishValue()
}
type NFloat64 float64
func (NFloat64) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NFloat64"`
}) {
}
func (m *NFloat64) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromFloat(float64((*m)), tt); err != nil {
return err
}
return nil
}
func (m *NFloat64) MakeVDLTarget() vdl.Target {
return &NFloat64Target{Value: m}
}
type NFloat64Target struct {
Value *NFloat64
vdl.TargetBase
}
func (t *NFloat64Target) FromUint(src uint64, tt *vdl.Type) error {
val, err := vdlconv.Uint64ToFloat64(src)
if err != nil {
return err
}
*t.Value = NFloat64(val)
return nil
}
func (t *NFloat64Target) FromInt(src int64, tt *vdl.Type) error {
val, err := vdlconv.Int64ToFloat64(src)
if err != nil {
return err
}
*t.Value = NFloat64(val)
return nil
}
func (t *NFloat64Target) FromFloat(src float64, tt *vdl.Type) error {
*t.Value = NFloat64(src)
return nil
}
func (x NFloat64) VDLIsZero() (bool, error) {
return x == 0, nil
}
func (x NFloat64) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NFloat64)(nil))); err != nil {
return err
}
if err := enc.EncodeFloat(float64(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NFloat64) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeFloat(64)
if err != nil {
return err
}
*x = NFloat64(tmp)
return dec.FinishValue()
}
type NArray2Uint64 [2]uint64
func (NArray2Uint64) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NArray2Uint64"`
}) {
}
func (m *NArray2Uint64) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, 2)
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elemTarget2.FromUint(uint64(elem3), tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *NArray2Uint64) MakeVDLTarget() vdl.Target {
return &NArray2Uint64Target{Value: m}
}
// NArray2Uint64
type NArray2Uint64Target struct {
Value *NArray2Uint64
elemTarget vdl.Uint64Target
vdl.TargetBase
vdl.ListTargetBase
}
func (t *NArray2Uint64Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*NArray2Uint64)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *NArray2Uint64Target) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *NArray2Uint64Target) FinishElem(elem vdl.Target) error {
return nil
}
func (t *NArray2Uint64Target) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x NArray2Uint64) VDLIsZero() (bool, error) {
return x == NArray2Uint64{}, nil
}
func (x NArray2Uint64) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NArray2Uint64)(nil))); err != nil {
return err
}
for i := 0; i < 2; i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint64)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(x[i]); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NArray2Uint64) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible array %T, from %v", *x, dec.Type())
}
index := 0
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done != (index >= len(*x)):
return fmt.Errorf("array len mismatch, got %d, want %T", index, *x)
case done:
return dec.FinishValue()
}
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x[index], err = dec.DecodeUint(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
index++
}
}
type NListUint64 []uint64
func (NListUint64) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NListUint64"`
}) {
}
func (m *NListUint64) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elemTarget2.FromUint(uint64(elem3), tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *NListUint64) MakeVDLTarget() vdl.Target {
return &NListUint64Target{Value: m}
}
// NListUint64
type NListUint64Target struct {
Value *NListUint64
elemTarget vdl.Uint64Target
vdl.TargetBase
vdl.ListTargetBase
}
func (t *NListUint64Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*NListUint64)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(NListUint64, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *NListUint64Target) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *NListUint64Target) FinishElem(elem vdl.Target) error {
return nil
}
func (t *NListUint64Target) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x NListUint64) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x NListUint64) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NListUint64)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint64)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(x[i]); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NListUint64) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(NListUint64, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem uint64
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeUint(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = append(*x, elem)
}
}
type NSetUint64 map[uint64]struct{}
func (NSetUint64) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NSetUint64"`
}) {
}
func (m *NSetUint64) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
setTarget1, err := t.StartSet(tt, len((*m)))
if err != nil {
return err
}
for key3 := range *m {
keyTarget2, err := setTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromUint(uint64(key3), tt.NonOptional().Key()); err != nil {
return err
}
if err := setTarget1.FinishKey(keyTarget2); err != nil {
return err
}
}
if err := t.FinishSet(setTarget1); err != nil {
return err
}
return nil
}
func (m *NSetUint64) MakeVDLTarget() vdl.Target {
return &NSetUint64Target{Value: m}
}
type NSetUint64Target struct {
Value *NSetUint64
currKey uint64
keyTarget vdl.Uint64Target
vdl.TargetBase
vdl.SetTargetBase
}
func (t *NSetUint64Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
if ttWant := vdl.TypeOf((*NSetUint64)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(NSetUint64)
return t, nil
}
func (t *NSetUint64Target) StartKey() (key vdl.Target, _ error) {
t.currKey = uint64(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *NSetUint64Target) FinishKey(key vdl.Target) error {
(*t.Value)[t.currKey] = struct{}{}
return nil
}
func (t *NSetUint64Target) FinishSet(list vdl.SetTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x NSetUint64) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x NSetUint64) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NSetUint64)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint64)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NSetUint64) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible set %T, from %v", *x, dec.Type())
}
var tmpMap NSetUint64
if len := dec.LenHint(); len > 0 {
tmpMap = make(NSetUint64, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key uint64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeUint(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(NSetUint64)
}
tmpMap[key] = struct{}{}
}
}
type NMapUint64String map[uint64]string
func (NMapUint64String) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NMapUint64String"`
}) {
}
func (m *NMapUint64String) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromUint(uint64(key3), tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := valueTarget4.FromString(string(value5), tt.NonOptional().Elem()); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *NMapUint64String) MakeVDLTarget() vdl.Target {
return &NMapUint64StringTarget{Value: m}
}
type NMapUint64StringTarget struct {
Value *NMapUint64String
currKey uint64
currElem string
keyTarget vdl.Uint64Target
elemTarget vdl.StringTarget
vdl.TargetBase
vdl.MapTargetBase
}
func (t *NMapUint64StringTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*NMapUint64String)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(NMapUint64String)
return t, nil
}
func (t *NMapUint64StringTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = uint64(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *NMapUint64StringTarget) 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 *NMapUint64StringTarget) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *NMapUint64StringTarget) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x NMapUint64String) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x NMapUint64String) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NMapUint64String)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint64)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(elem); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NMapUint64String) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap NMapUint64String
if len := dec.LenHint(); len > 0 {
tmpMap = make(NMapUint64String, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key uint64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeUint(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem string
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(NMapUint64String)
}
tmpMap[key] = elem
}
}
type NStruct struct {
A bool
B string
C int64
}
func (NStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NStruct"`
}) {
}
func (m *NStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.A == false)
if var4 {
if err := fieldsTarget1.ZeroField("A"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("A")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromBool(bool(m.A), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.B == "")
if var7 {
if err := fieldsTarget1.ZeroField("B"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("B")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget6.FromString(string(m.B), tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.C == int64(0))
if var10 {
if err := fieldsTarget1.ZeroField("C"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("C")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget9.FromInt(int64(m.C), tt.NonOptional().Field(2).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *NStruct) MakeVDLTarget() vdl.Target {
return &NStructTarget{Value: m}
}
type NStructTarget struct {
Value *NStruct
aTarget vdl.BoolTarget
bTarget vdl.StringTarget
cTarget vdl.Int64Target
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *NStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*NStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *NStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "A":
t.aTarget.Value = &t.Value.A
target, err := &t.aTarget, error(nil)
return nil, target, err
case "B":
t.bTarget.Value = &t.Value.B
target, err := &t.bTarget, error(nil)
return nil, target, err
case "C":
t.cTarget.Value = &t.Value.C
target, err := &t.cTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.NStruct", name)
}
}
func (t *NStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *NStructTarget) ZeroField(name string) error {
switch name {
case "A":
t.Value.A = false
return nil
case "B":
t.Value.B = ""
return nil
case "C":
t.Value.C = int64(0)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.NStruct", name)
}
}
func (t *NStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x NStruct) VDLIsZero() (bool, error) {
return x == NStruct{}, nil
}
func (x NStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NStruct)(nil)).Elem()); err != nil {
return err
}
if x.A {
if err := enc.NextField("A"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.A); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.B != "" {
if err := enc.NextField("B"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.B); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.C != 0 {
if err := enc.NextField("C"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int64)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(x.C); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NStruct) VDLRead(dec vdl.Decoder) error {
*x = NStruct{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "A":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.A, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "B":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.B, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "C":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.C, err = dec.DecodeInt(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type NEnum int
const (
NEnumA NEnum = iota
NEnumB
NEnumC
)
// NEnumAll holds all labels for NEnum.
var NEnumAll = [...]NEnum{NEnumA, NEnumB, NEnumC}
// NEnumFromString creates a NEnum from a string label.
func NEnumFromString(label string) (x NEnum, err error) {
err = x.Set(label)
return
}
// Set assigns label to x.
func (x *NEnum) Set(label string) error {
switch label {
case "A", "a":
*x = NEnumA
return nil
case "B", "b":
*x = NEnumB
return nil
case "C", "c":
*x = NEnumC
return nil
}
*x = -1
return fmt.Errorf("unknown label %q in types.NEnum", label)
}
// String returns the string label of x.
func (x NEnum) String() string {
switch x {
case NEnumA:
return "A"
case NEnumB:
return "B"
case NEnumC:
return "C"
}
return ""
}
func (NEnum) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NEnum"`
Enum struct{ A, B, C string }
}) {
}
func (m *NEnum) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromEnumLabel((*m).String(), tt); err != nil {
return err
}
return nil
}
func (m *NEnum) MakeVDLTarget() vdl.Target {
return &NEnumTarget{Value: m}
}
type NEnumTarget struct {
Value *NEnum
vdl.TargetBase
}
func (t *NEnumTarget) FromEnumLabel(src string, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*NEnum)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
switch src {
case "A":
*t.Value = 0
case "B":
*t.Value = 1
case "C":
*t.Value = 2
default:
return fmt.Errorf("label %s not in enum NEnum", src)
}
return nil
}
func (x NEnum) VDLIsZero() (bool, error) {
return x == NEnumA, nil
}
func (x NEnum) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NEnum)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.String()); err != nil {
return err
}
return enc.FinishValue()
}
func (x *NEnum) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
enum, err := dec.DecodeString()
if err != nil {
return err
}
if err := x.Set(enum); err != nil {
return err
}
return dec.FinishValue()
}
type (
// NUnion represents any single field of the NUnion union type.
NUnion interface {
// Index returns the field index.
Index() int
// Interface returns the field value as an interface.
Interface() interface{}
// Name returns the field name.
Name() string
// __VDLReflect describes the NUnion union type.
__VDLReflect(__NUnionReflect)
FillVDLTarget(vdl.Target, *vdl.Type) error
VDLIsZero() (bool, error)
VDLWrite(vdl.Encoder) error
}
// NUnionA represents field A of the NUnion union type.
NUnionA struct{ Value bool }
// NUnionB represents field B of the NUnion union type.
NUnionB struct{ Value string }
// NUnionC represents field C of the NUnion union type.
NUnionC struct{ Value int64 }
// __NUnionReflect describes the NUnion union type.
__NUnionReflect struct {
Name string `vdl:"v.io/v23/vom/testdata/types.NUnion"`
Type NUnion
UnionTargetFactory nUnionTargetFactory
Union struct {
A NUnionA
B NUnionB
C NUnionC
}
}
)
func (x NUnionA) Index() int { return 0 }
func (x NUnionA) Interface() interface{} { return x.Value }
func (x NUnionA) Name() string { return "A" }
func (x NUnionA) __VDLReflect(__NUnionReflect) {}
func (m NUnionA) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("A")
if err != nil {
return err
}
if err := fieldTarget3.FromBool(bool(m.Value), tt.NonOptional().Field(0).Type); 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 NUnionA) MakeVDLTarget() vdl.Target {
return nil
}
func (x NUnionB) Index() int { return 1 }
func (x NUnionB) Interface() interface{} { return x.Value }
func (x NUnionB) Name() string { return "B" }
func (x NUnionB) __VDLReflect(__NUnionReflect) {}
func (m NUnionB) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("B")
if err != nil {
return err
}
if err := fieldTarget3.FromString(string(m.Value), tt.NonOptional().Field(1).Type); 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 NUnionB) MakeVDLTarget() vdl.Target {
return nil
}
func (x NUnionC) Index() int { return 2 }
func (x NUnionC) Interface() interface{} { return x.Value }
func (x NUnionC) Name() string { return "C" }
func (x NUnionC) __VDLReflect(__NUnionReflect) {}
func (m NUnionC) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("C")
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(m.Value), tt.NonOptional().Field(2).Type); 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 NUnionC) MakeVDLTarget() vdl.Target {
return nil
}
type NUnionTarget struct {
Value *NUnion
fieldName string
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *NUnionTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*NUnion)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *NUnionTarget) StartField(name string) (key, field vdl.Target, _ error) {
t.fieldName = name
switch name {
case "A":
val := false
return nil, &vdl.BoolTarget{Value: &val}, nil
case "B":
val := ""
return nil, &vdl.StringTarget{Value: &val}, nil
case "C":
val := int64(0)
return nil, &vdl.Int64Target{Value: &val}, nil
default:
return nil, nil, fmt.Errorf("field %s not in union v.io/v23/vom/testdata/types.NUnion", name)
}
}
func (t *NUnionTarget) FinishField(_, fieldTarget vdl.Target) error {
switch t.fieldName {
case "A":
*t.Value = NUnionA{*(fieldTarget.(*vdl.BoolTarget)).Value}
case "B":
*t.Value = NUnionB{*(fieldTarget.(*vdl.StringTarget)).Value}
case "C":
*t.Value = NUnionC{*(fieldTarget.(*vdl.Int64Target)).Value}
}
return nil
}
func (t *NUnionTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
type nUnionTargetFactory struct{}
func (t nUnionTargetFactory) VDLMakeUnionTarget(union interface{}) (vdl.Target, error) {
if typedUnion, ok := union.(*NUnion); ok {
return &NUnionTarget{Value: typedUnion}, nil
}
return nil, fmt.Errorf("got %T, want *NUnion", union)
}
func (x NUnionA) VDLIsZero() (bool, error) {
return !x.Value, nil
}
func (x NUnionB) VDLIsZero() (bool, error) {
return false, nil
}
func (x NUnionC) VDLIsZero() (bool, error) {
return false, nil
}
func (x NUnionA) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("A"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.Value); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x NUnionB) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("B"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.Value); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x NUnionC) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*NUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("C"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int64)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(x.Value); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func VDLReadNUnion(dec vdl.Decoder, x *NUnion) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(x), dec.Type()) {
return fmt.Errorf("incompatible union %T, from %v", x, dec.Type())
}
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "A":
var field NUnionA
if err := dec.StartValue(); err != nil {
return err
}
var err error
if field.Value, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "B":
var field NUnionB
if err := dec.StartValue(); err != nil {
return err
}
var err error
if field.Value, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "C":
var field NUnionC
if err := dec.StartValue(); err != nil {
return err
}
var err error
if field.Value, err = dec.DecodeInt(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "":
return fmt.Errorf("missing field in union %T, from %v", x, dec.Type())
default:
return fmt.Errorf("field %q not in union %T, from %v", f, x, dec.Type())
}
switch f, err := dec.NextField(); {
case err != nil:
return err
case f != "":
return fmt.Errorf("extra field %q in union %T, from %v", f, x, dec.Type())
}
return dec.FinishValue()
}
// Nested Custom Types
type MBool NBool
func (MBool) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MBool"`
}) {
}
func (m *MBool) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromBool(bool((*m)), tt); err != nil {
return err
}
return nil
}
func (m *MBool) MakeVDLTarget() vdl.Target {
return &MBoolTarget{Value: m}
}
type MBoolTarget struct {
Value *MBool
vdl.TargetBase
}
func (t *MBoolTarget) FromBool(src bool, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*MBool)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = MBool(src)
return nil
}
func (x MBool) VDLIsZero() (bool, error) {
return bool(!x), nil
}
func (x MBool) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MBool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(bool(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MBool) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeBool()
if err != nil {
return err
}
*x = MBool(tmp)
return dec.FinishValue()
}
type MStruct struct {
A bool
B NBool
C MBool
D *NStruct
E *vdl.Type
F *vdl.Value
}
func (MStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MStruct"`
}) {
}
func (m *MStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.A == false)
if var4 {
if err := fieldsTarget1.ZeroField("A"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("A")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromBool(bool(m.A), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.B == NBool(false))
if var7 {
if err := fieldsTarget1.ZeroField("B"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("B")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.B.FillVDLTarget(fieldTarget6, tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.C == MBool(false))
if var10 {
if err := fieldsTarget1.ZeroField("C"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("C")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.C.FillVDLTarget(fieldTarget9, tt.NonOptional().Field(2).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
var13 := (m.D == (*NStruct)(nil))
if var13 {
if err := fieldsTarget1.ZeroField("D"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget11, fieldTarget12, err := fieldsTarget1.StartField("D")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.D.FillVDLTarget(fieldTarget12, tt.NonOptional().Field(3).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget11, fieldTarget12); err != nil {
return err
}
}
}
var16 := (m.E == nil || m.E == vdl.AnyType)
if var16 {
if err := fieldsTarget1.ZeroField("E"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget14, fieldTarget15, err := fieldsTarget1.StartField("E")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
typeObjectVal17 := m.E
if typeObjectVal17 == nil {
typeObjectVal17 = vdl.AnyType
}
if err := fieldTarget15.FromTypeObject(typeObjectVal17); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget14, fieldTarget15); err != nil {
return err
}
}
}
var20 := m.F == nil || (m.F.Kind() == vdl.Any && m.F.IsZero())
if var20 {
if err := fieldsTarget1.ZeroField("F"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget18, fieldTarget19, err := fieldsTarget1.StartField("F")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := vdl.FromValue(fieldTarget19, m.F); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget18, fieldTarget19); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *MStruct) MakeVDLTarget() vdl.Target {
return &MStructTarget{Value: m}
}
type MStructTarget struct {
Value *MStruct
aTarget vdl.BoolTarget
bTarget NBoolTarget
cTarget MBoolTarget
dTarget __VDLTarget7_optional
eTarget vdl.TypeObjectTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *MStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*MStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *MStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "A":
t.aTarget.Value = &t.Value.A
target, err := &t.aTarget, error(nil)
return nil, target, err
case "B":
t.bTarget.Value = &t.Value.B
target, err := &t.bTarget, error(nil)
return nil, target, err
case "C":
t.cTarget.Value = &t.Value.C
target, err := &t.cTarget, error(nil)
return nil, target, err
case "D":
t.dTarget.Value = &t.Value.D
target, err := &t.dTarget, error(nil)
return nil, target, err
case "E":
t.eTarget.Value = &t.Value.E
target, err := &t.eTarget, error(nil)
return nil, target, err
case "F":
target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.F))
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.MStruct", name)
}
}
func (t *MStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *MStructTarget) ZeroField(name string) error {
switch name {
case "A":
t.Value.A = false
return nil
case "B":
t.Value.B = NBool(false)
return nil
case "C":
t.Value.C = MBool(false)
return nil
case "D":
t.Value.D = (*NStruct)(nil)
return nil
case "E":
t.Value.E = vdl.AnyType
return nil
case "F":
t.Value.F = vdl.ZeroValue(vdl.AnyType)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.MStruct", name)
}
}
func (t *MStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// Optional NStruct
type __VDLTarget7_optional struct {
Value **NStruct
elemTarget NStructTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *__VDLTarget7_optional) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if *t.Value == nil {
*t.Value = &NStruct{}
}
t.elemTarget.Value = *t.Value
target, err := &t.elemTarget, error(nil)
if err != nil {
return nil, err
}
return target.StartFields(tt)
}
func (t *__VDLTarget7_optional) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (t *__VDLTarget7_optional) FromNil(tt *vdl.Type) error {
*t.Value = (*NStruct)(nil)
return nil
}
func (x MStruct) VDLIsZero() (bool, error) {
if x.A {
return false, nil
}
if x.B {
return false, nil
}
if x.C {
return false, nil
}
if x.D != nil {
return false, nil
}
if x.E != nil && x.E != vdl.AnyType {
return false, nil
}
var isZeroF bool
if x.F != nil {
var err error
if isZeroF, err = x.F.VDLIsZero(); err != nil {
return false, err
}
}
if x.F != nil && !isZeroF {
return false, nil
}
return true, nil
}
func (x MStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MStruct)(nil)).Elem()); err != nil {
return err
}
if x.A {
if err := enc.NextField("A"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.A); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.B {
if err := enc.NextField("B"); err != nil {
return err
}
if err := x.B.VDLWrite(enc); err != nil {
return err
}
}
if x.C {
if err := enc.NextField("C"); err != nil {
return err
}
if err := x.C.VDLWrite(enc); err != nil {
return err
}
}
if x.D != nil {
if err := enc.NextField("D"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((**NStruct)(nil))); err != nil {
return err
}
enc.SetNextStartValueIsOptional()
if err := (*x.D).VDLWrite(enc); err != nil {
return err
}
}
if x.E != nil && x.E != vdl.AnyType {
if err := enc.NextField("E"); err != nil {
return err
}
if err := x.E.VDLWrite(enc); err != nil {
return err
}
}
var isZeroF bool
if x.F != nil {
var err error
if isZeroF, err = x.F.VDLIsZero(); err != nil {
return err
}
}
if x.F != nil && !isZeroF {
if err := enc.NextField("F"); err != nil {
return err
}
if err := enc.StartValue(vdl.AnyType); err != nil {
return err
}
switch {
case x.F.IsNil():
if err := enc.NilValue(x.F.Type()); err != nil {
return err
}
default:
if err := x.F.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MStruct) VDLRead(dec vdl.Decoder) error {
*x = MStruct{
E: vdl.AnyType,
F: vdl.ZeroValue(vdl.AnyType),
}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "A":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.A, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "B":
if err := x.B.VDLRead(dec); err != nil {
return err
}
case "C":
if err := x.C.VDLRead(dec); err != nil {
return err
}
case "D":
if err := dec.StartValue(); err != nil {
return err
}
if dec.IsNil() {
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(x.D), dec.Type()) {
return fmt.Errorf("incompatible optional %T, from %v", x.D, dec.Type())
}
x.D = nil
if err := dec.FinishValue(); err != nil {
return err
}
} else {
x.D = new(NStruct)
dec.IgnoreNextStartValue()
if err := x.D.VDLRead(dec); err != nil {
return err
}
}
case "E":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.E, err = dec.DecodeTypeObject(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "F":
x.F = new(vdl.Value)
if err := x.F.VDLRead(dec); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type MList []NListUint64
func (MList) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MList"`
}) {
}
func (m *MList) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elem3.FillVDLTarget(elemTarget2, tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *MList) MakeVDLTarget() vdl.Target {
return &MListTarget{Value: m}
}
// MList
type MListTarget struct {
Value *MList
elemTarget NListUint64Target
vdl.TargetBase
vdl.ListTargetBase
}
func (t *MListTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*MList)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(MList, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *MListTarget) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *MListTarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *MListTarget) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x MList) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MList) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MList)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MList) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(MList, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem NListUint64
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type MMap map[NFloat32]NListUint64
func (MMap) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MMap"`
}) {
}
func (m *MMap) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := key3.FillVDLTarget(keyTarget2, tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := value5.FillVDLTarget(valueTarget4, tt.NonOptional().Elem()); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *MMap) MakeVDLTarget() vdl.Target {
return &MMapTarget{Value: m}
}
type MMapTarget struct {
Value *MMap
currKey NFloat32
currElem NListUint64
keyTarget NFloat32Target
elemTarget NListUint64Target
vdl.TargetBase
vdl.MapTargetBase
}
func (t *MMapTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*MMap)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(MMap)
return t, nil
}
func (t *MMapTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = NFloat32(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *MMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = NListUint64(nil)
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *MMapTarget) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *MMapTarget) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x MMap) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MMap) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MMap)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := key.VDLWrite(enc); err != nil {
return err
}
if err := elem.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MMap) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap MMap
if len := dec.LenHint(); len > 0 {
tmpMap = make(MMap, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key NFloat32
{
if err := key.VDLRead(dec); err != nil {
return err
}
}
var elem NListUint64
{
if err := elem.VDLRead(dec); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(MMap)
}
tmpMap[key] = elem
}
}
type MByteSlice []byte
func (MByteSlice) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MByteSlice"`
}) {
}
func (m *MByteSlice) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromBytes([]byte((*m)), tt); err != nil {
return err
}
return nil
}
func (m *MByteSlice) MakeVDLTarget() vdl.Target {
return &MByteSliceTarget{Value: m}
}
type MByteSliceTarget struct {
Value *MByteSlice
vdl.TargetBase
}
func (t *MByteSliceTarget) FromBytes(src []byte, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*MByteSlice)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if len(src) == 0 {
*t.Value = nil
} else {
*t.Value = make([]byte, len(src))
copy(*t.Value, src)
}
return nil
}
func (x MByteSlice) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MByteSlice) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MByteSlice)(nil))); err != nil {
return err
}
if err := enc.EncodeBytes([]byte(x)); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MByteSlice) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
var bytes []byte
if err := dec.DecodeBytes(-1, &bytes); err != nil {
return err
}
*x = bytes
return dec.FinishValue()
}
type MInt8Slice []int8
func (MInt8Slice) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MInt8Slice"`
}) {
}
func (m *MInt8Slice) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elemTarget2.FromInt(int64(elem3), tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *MInt8Slice) MakeVDLTarget() vdl.Target {
return &MInt8SliceTarget{Value: m}
}
// MInt8Slice
type MInt8SliceTarget struct {
Value *MInt8Slice
elemTarget vdl.Int8Target
vdl.TargetBase
vdl.ListTargetBase
}
func (t *MInt8SliceTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*MInt8Slice)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(MInt8Slice, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *MInt8SliceTarget) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *MInt8SliceTarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *MInt8SliceTarget) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x MInt8Slice) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MInt8Slice) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MInt8Slice)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int8)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(int64(x[i])); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MInt8Slice) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(MInt8Slice, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem int8
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(8)
if err != nil {
return err
}
elem = int8(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = append(*x, elem)
}
}
// Recursive Type Definitions
type RecA []RecA
func (RecA) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.RecA"`
}) {
}
func (m *RecA) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elem3.FillVDLTarget(elemTarget2, tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *RecA) MakeVDLTarget() vdl.Target {
return &RecATarget{Value: m}
}
// RecA
type RecATarget struct {
Value *RecA
vdl.TargetBase
vdl.ListTargetBase
}
func (t *RecATarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*RecA)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(RecA, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *RecATarget) StartElem(index int) (elem vdl.Target, _ error) {
target, err := &RecATarget{Value: &(*t.Value)[index]}, error(nil)
return target, err
}
func (t *RecATarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *RecATarget) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x RecA) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x RecA) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*RecA)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *RecA) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(RecA, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem RecA
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type RecY []RecX
func (RecY) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.RecY"`
}) {
}
func (m *RecY) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elem3.FillVDLTarget(elemTarget2, tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *RecY) MakeVDLTarget() vdl.Target {
return &RecYTarget{Value: m}
}
// RecY
type RecYTarget struct {
Value *RecY
vdl.TargetBase
vdl.ListTargetBase
}
func (t *RecYTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*RecY)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(RecY, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *RecYTarget) StartElem(index int) (elem vdl.Target, _ error) {
target, err := &RecXTarget{Value: &(*t.Value)[index]}, error(nil)
return target, err
}
func (t *RecYTarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *RecYTarget) FinishList(elem vdl.ListTarget) error {
return nil
}
// RecX
type RecXTarget struct {
Value *RecX
vdl.TargetBase
vdl.ListTargetBase
}
func (t *RecXTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*RecX)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(RecX, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *RecXTarget) StartElem(index int) (elem vdl.Target, _ error) {
target, err := &RecYTarget{Value: &(*t.Value)[index]}, error(nil)
return target, err
}
func (t *RecXTarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *RecXTarget) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x RecY) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x RecY) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*RecY)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *RecY) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(RecY, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem RecX
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type RecX []RecY
func (RecX) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.RecX"`
}) {
}
func (m *RecX) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elem3.FillVDLTarget(elemTarget2, tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *RecX) MakeVDLTarget() vdl.Target {
return &RecXTarget{Value: m}
}
func (x RecX) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x RecX) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*RecX)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *RecX) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(RecX, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem RecY
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type Rec4 []Rec1
func (Rec4) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Rec4"`
}) {
}
func (m *Rec4) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elem3.FillVDLTarget(elemTarget2, tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *Rec4) MakeVDLTarget() vdl.Target {
return &Rec4Target{Value: m}
}
// Rec4
type Rec4Target struct {
Value *Rec4
vdl.TargetBase
vdl.ListTargetBase
}
func (t *Rec4Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*Rec4)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(Rec4, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *Rec4Target) StartElem(index int) (elem vdl.Target, _ error) {
target, err := &Rec1Target{Value: &(*t.Value)[index]}, error(nil)
return target, err
}
func (t *Rec4Target) FinishElem(elem vdl.Target) error {
return nil
}
func (t *Rec4Target) FinishList(elem vdl.ListTarget) error {
return nil
}
// Rec1
type Rec1Target struct {
Value *Rec1
vdl.TargetBase
vdl.ListTargetBase
}
func (t *Rec1Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*Rec1)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(Rec1, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *Rec1Target) StartElem(index int) (elem vdl.Target, _ error) {
target, err := &Rec2Target{Value: &(*t.Value)[index]}, error(nil)
return target, err
}
func (t *Rec1Target) FinishElem(elem vdl.Target) error {
return nil
}
func (t *Rec1Target) FinishList(elem vdl.ListTarget) error {
return nil
}
// Rec2
type Rec2Target struct {
Value *Rec2
vdl.TargetBase
vdl.ListTargetBase
}
func (t *Rec2Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*Rec2)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(Rec2, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *Rec2Target) StartElem(index int) (elem vdl.Target, _ error) {
target, err := &Rec3Target{Value: &(*t.Value)[index]}, error(nil)
return target, err
}
func (t *Rec2Target) FinishElem(elem vdl.Target) error {
return nil
}
func (t *Rec2Target) FinishList(elem vdl.ListTarget) error {
return nil
}
// Rec3
type Rec3Target struct {
Value *Rec3
vdl.TargetBase
vdl.ListTargetBase
}
func (t *Rec3Target) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*Rec3)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(Rec3, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *Rec3Target) StartElem(index int) (elem vdl.Target, _ error) {
target, err := &Rec4Target{Value: &(*t.Value)[index]}, error(nil)
return target, err
}
func (t *Rec3Target) FinishElem(elem vdl.Target) error {
return nil
}
func (t *Rec3Target) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x Rec4) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x Rec4) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Rec4)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Rec4) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(Rec4, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem Rec1
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type Rec3 []Rec4
func (Rec3) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Rec3"`
}) {
}
func (m *Rec3) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elem3.FillVDLTarget(elemTarget2, tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *Rec3) MakeVDLTarget() vdl.Target {
return &Rec3Target{Value: m}
}
func (x Rec3) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x Rec3) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Rec3)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Rec3) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(Rec3, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem Rec4
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type Rec2 []Rec3
func (Rec2) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Rec2"`
}) {
}
func (m *Rec2) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elem3.FillVDLTarget(elemTarget2, tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *Rec2) MakeVDLTarget() vdl.Target {
return &Rec2Target{Value: m}
}
func (x Rec2) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x Rec2) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Rec2)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Rec2) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(Rec2, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem Rec3
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type Rec1 []Rec2
func (Rec1) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Rec1"`
}) {
}
func (m *Rec1) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elem3.FillVDLTarget(elemTarget2, tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *Rec1) MakeVDLTarget() vdl.Target {
return &Rec1Target{Value: m}
}
func (x Rec1) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x Rec1) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Rec1)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Rec1) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(Rec1, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem Rec2
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type RecStruct struct {
A *RecStruct
}
func (RecStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.RecStruct"`
}) {
}
func (m *RecStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.A == (*RecStruct)(nil))
if var4 {
if err := fieldsTarget1.ZeroField("A"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("A")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.A.FillVDLTarget(fieldTarget3, tt.NonOptional().Field(0).Type); 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 *RecStruct) MakeVDLTarget() vdl.Target {
return &RecStructTarget{Value: m}
}
type RecStructTarget struct {
Value *RecStruct
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *RecStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*RecStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *RecStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "A":
target, err := &__VDLTarget8_optional{Value: &t.Value.A}, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.RecStruct", name)
}
}
func (t *RecStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *RecStructTarget) ZeroField(name string) error {
switch name {
case "A":
t.Value.A = (*RecStruct)(nil)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.RecStruct", name)
}
}
func (t *RecStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// Optional RecStruct
type __VDLTarget8_optional struct {
Value **RecStruct
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *__VDLTarget8_optional) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if *t.Value == nil {
*t.Value = &RecStruct{}
}
target, err := &RecStructTarget{Value: *t.Value}, error(nil)
if err != nil {
return nil, err
}
return target.StartFields(tt)
}
func (t *__VDLTarget8_optional) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (t *__VDLTarget8_optional) FromNil(tt *vdl.Type) error {
*t.Value = (*RecStruct)(nil)
return nil
}
func (x RecStruct) VDLIsZero() (bool, error) {
return x == RecStruct{}, nil
}
func (x RecStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*RecStruct)(nil)).Elem()); err != nil {
return err
}
if x.A != nil {
if err := enc.NextField("A"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((**RecStruct)(nil))); err != nil {
return err
}
enc.SetNextStartValueIsOptional()
if err := (*x.A).VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *RecStruct) VDLRead(dec vdl.Decoder) error {
*x = RecStruct{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "A":
if err := dec.StartValue(); err != nil {
return err
}
if dec.IsNil() {
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(x.A), dec.Type()) {
return fmt.Errorf("incompatible optional %T, from %v", x.A, dec.Type())
}
x.A = nil
if err := dec.FinishValue(); err != nil {
return err
}
} else {
x.A = new(RecStruct)
dec.IgnoreNextStartValue()
if err := x.A.VDLRead(dec); err != nil {
return err
}
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type Rec1234 struct {
R1 Rec1
R2 Rec2
R3 Rec3
R4 Rec4
}
func (Rec1234) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Rec1234"`
}) {
}
func (m *Rec1234) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var var4 bool
if len(m.R1) == 0 {
var4 = true
}
if var4 {
if err := fieldsTarget1.ZeroField("R1"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("R1")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.R1.FillVDLTarget(fieldTarget3, tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var var7 bool
if len(m.R2) == 0 {
var7 = true
}
if var7 {
if err := fieldsTarget1.ZeroField("R2"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("R2")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.R2.FillVDLTarget(fieldTarget6, tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var var10 bool
if len(m.R3) == 0 {
var10 = true
}
if var10 {
if err := fieldsTarget1.ZeroField("R3"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("R3")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.R3.FillVDLTarget(fieldTarget9, tt.NonOptional().Field(2).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
var var13 bool
if len(m.R4) == 0 {
var13 = true
}
if var13 {
if err := fieldsTarget1.ZeroField("R4"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget11, fieldTarget12, err := fieldsTarget1.StartField("R4")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.R4.FillVDLTarget(fieldTarget12, tt.NonOptional().Field(3).Type); 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 *Rec1234) MakeVDLTarget() vdl.Target {
return &Rec1234Target{Value: m}
}
type Rec1234Target struct {
Value *Rec1234
r1Target Rec1Target
r2Target Rec2Target
r3Target Rec3Target
r4Target Rec4Target
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *Rec1234Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*Rec1234)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *Rec1234Target) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "R1":
t.r1Target.Value = &t.Value.R1
target, err := &t.r1Target, error(nil)
return nil, target, err
case "R2":
t.r2Target.Value = &t.Value.R2
target, err := &t.r2Target, error(nil)
return nil, target, err
case "R3":
t.r3Target.Value = &t.Value.R3
target, err := &t.r3Target, error(nil)
return nil, target, err
case "R4":
t.r4Target.Value = &t.Value.R4
target, err := &t.r4Target, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.Rec1234", name)
}
}
func (t *Rec1234Target) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *Rec1234Target) ZeroField(name string) error {
switch name {
case "R1":
t.Value.R1 = Rec1(nil)
return nil
case "R2":
t.Value.R2 = Rec2(nil)
return nil
case "R3":
t.Value.R3 = Rec3(nil)
return nil
case "R4":
t.Value.R4 = Rec4(nil)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.Rec1234", name)
}
}
func (t *Rec1234Target) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x Rec1234) VDLIsZero() (bool, error) {
if len(x.R1) != 0 {
return false, nil
}
if len(x.R2) != 0 {
return false, nil
}
if len(x.R3) != 0 {
return false, nil
}
if len(x.R4) != 0 {
return false, nil
}
return true, nil
}
func (x Rec1234) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Rec1234)(nil)).Elem()); err != nil {
return err
}
if len(x.R1) != 0 {
if err := enc.NextField("R1"); err != nil {
return err
}
if err := x.R1.VDLWrite(enc); err != nil {
return err
}
}
if len(x.R2) != 0 {
if err := enc.NextField("R2"); err != nil {
return err
}
if err := x.R2.VDLWrite(enc); err != nil {
return err
}
}
if len(x.R3) != 0 {
if err := enc.NextField("R3"); err != nil {
return err
}
if err := x.R3.VDLWrite(enc); err != nil {
return err
}
}
if len(x.R4) != 0 {
if err := enc.NextField("R4"); err != nil {
return err
}
if err := x.R4.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Rec1234) VDLRead(dec vdl.Decoder) error {
*x = Rec1234{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "R1":
if err := x.R1.VDLRead(dec); err != nil {
return err
}
case "R2":
if err := x.R2.VDLRead(dec); err != nil {
return err
}
case "R3":
if err := x.R3.VDLRead(dec); err != nil {
return err
}
case "R4":
if err := x.R4.VDLRead(dec); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type Rec1234A struct {
A []Rec1234A
Rec1234 []Rec1234
}
func (Rec1234A) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Rec1234A"`
}) {
}
func (m *Rec1234A) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var var4 bool
if len(m.A) == 0 {
var4 = true
}
if var4 {
if err := fieldsTarget1.ZeroField("A"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("A")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
listTarget5, err := fieldTarget3.StartList(tt.NonOptional().Field(0).Type, len(m.A))
if err != nil {
return err
}
for i, elem7 := range m.A {
elemTarget6, err := listTarget5.StartElem(i)
if err != nil {
return err
}
if err := elem7.FillVDLTarget(elemTarget6, tt.NonOptional().Field(0).Type.Elem()); err != nil {
return err
}
if err := listTarget5.FinishElem(elemTarget6); err != nil {
return err
}
}
if err := fieldTarget3.FinishList(listTarget5); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var var10 bool
if len(m.Rec1234) == 0 {
var10 = true
}
if var10 {
if err := fieldsTarget1.ZeroField("Rec1234"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("Rec1234")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
listTarget11, err := fieldTarget9.StartList(tt.NonOptional().Field(1).Type, len(m.Rec1234))
if err != nil {
return err
}
for i, elem13 := range m.Rec1234 {
elemTarget12, err := listTarget11.StartElem(i)
if err != nil {
return err
}
if err := elem13.FillVDLTarget(elemTarget12, tt.NonOptional().Field(1).Type.Elem()); err != nil {
return err
}
if err := listTarget11.FinishElem(elemTarget12); err != nil {
return err
}
}
if err := fieldTarget9.FinishList(listTarget11); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *Rec1234A) MakeVDLTarget() vdl.Target {
return &Rec1234ATarget{Value: m}
}
type Rec1234ATarget struct {
Value *Rec1234A
rec1234Target __VDLTarget9_list
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *Rec1234ATarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*Rec1234A)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *Rec1234ATarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "A":
target, err := &__VDLTarget10_list{Value: &t.Value.A}, error(nil)
return nil, target, err
case "Rec1234":
t.rec1234Target.Value = &t.Value.Rec1234
target, err := &t.rec1234Target, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.Rec1234A", name)
}
}
func (t *Rec1234ATarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *Rec1234ATarget) ZeroField(name string) error {
switch name {
case "A":
t.Value.A = []Rec1234A(nil)
return nil
case "Rec1234":
t.Value.Rec1234 = []Rec1234(nil)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.Rec1234A", name)
}
}
func (t *Rec1234ATarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// []Rec1234A
type __VDLTarget10_list struct {
Value *[]Rec1234A
vdl.TargetBase
vdl.ListTargetBase
}
func (t *__VDLTarget10_list) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*[]Rec1234A)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make([]Rec1234A, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *__VDLTarget10_list) StartElem(index int) (elem vdl.Target, _ error) {
target, err := &Rec1234ATarget{Value: &(*t.Value)[index]}, error(nil)
return target, err
}
func (t *__VDLTarget10_list) FinishElem(elem vdl.Target) error {
return nil
}
func (t *__VDLTarget10_list) FinishList(elem vdl.ListTarget) error {
return nil
}
// []Rec1234
type __VDLTarget9_list struct {
Value *[]Rec1234
elemTarget Rec1234Target
vdl.TargetBase
vdl.ListTargetBase
}
func (t *__VDLTarget9_list) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*[]Rec1234)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make([]Rec1234, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *__VDLTarget9_list) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *__VDLTarget9_list) FinishElem(elem vdl.Target) error {
return nil
}
func (t *__VDLTarget9_list) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x Rec1234A) VDLIsZero() (bool, error) {
if len(x.A) != 0 {
return false, nil
}
if len(x.Rec1234) != 0 {
return false, nil
}
return true, nil
}
func (x Rec1234A) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Rec1234A)(nil)).Elem()); err != nil {
return err
}
if len(x.A) != 0 {
if err := enc.NextField("A"); err != nil {
return err
}
if err := __VDLWriteAnon_list_7(enc, x.A); err != nil {
return err
}
}
if len(x.Rec1234) != 0 {
if err := enc.NextField("Rec1234"); err != nil {
return err
}
if err := __VDLWriteAnon_list_8(enc, x.Rec1234); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_list_7(enc vdl.Encoder, x []Rec1234A) error {
if err := enc.StartValue(vdl.TypeOf((*[]Rec1234A)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_list_8(enc vdl.Encoder, x []Rec1234) error {
if err := enc.StartValue(vdl.TypeOf((*[]Rec1234)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Rec1234A) VDLRead(dec vdl.Decoder) error {
*x = Rec1234A{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "A":
if err := __VDLReadAnon_list_7(dec, &x.A); err != nil {
return err
}
case "Rec1234":
if err := __VDLReadAnon_list_8(dec, &x.Rec1234); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
func __VDLReadAnon_list_7(dec vdl.Decoder, x *[]Rec1234A) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make([]Rec1234A, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem Rec1234A
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
func __VDLReadAnon_list_8(dec vdl.Decoder, x *[]Rec1234) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make([]Rec1234, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem Rec1234
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type Rec1234B struct {
B []Rec1234B
Rec1234 []Rec1234
}
func (Rec1234B) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Rec1234B"`
}) {
}
func (m *Rec1234B) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var var4 bool
if len(m.B) == 0 {
var4 = true
}
if var4 {
if err := fieldsTarget1.ZeroField("B"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("B")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
listTarget5, err := fieldTarget3.StartList(tt.NonOptional().Field(0).Type, len(m.B))
if err != nil {
return err
}
for i, elem7 := range m.B {
elemTarget6, err := listTarget5.StartElem(i)
if err != nil {
return err
}
if err := elem7.FillVDLTarget(elemTarget6, tt.NonOptional().Field(0).Type.Elem()); err != nil {
return err
}
if err := listTarget5.FinishElem(elemTarget6); err != nil {
return err
}
}
if err := fieldTarget3.FinishList(listTarget5); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var var10 bool
if len(m.Rec1234) == 0 {
var10 = true
}
if var10 {
if err := fieldsTarget1.ZeroField("Rec1234"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("Rec1234")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
listTarget11, err := fieldTarget9.StartList(tt.NonOptional().Field(1).Type, len(m.Rec1234))
if err != nil {
return err
}
for i, elem13 := range m.Rec1234 {
elemTarget12, err := listTarget11.StartElem(i)
if err != nil {
return err
}
if err := elem13.FillVDLTarget(elemTarget12, tt.NonOptional().Field(1).Type.Elem()); err != nil {
return err
}
if err := listTarget11.FinishElem(elemTarget12); err != nil {
return err
}
}
if err := fieldTarget9.FinishList(listTarget11); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *Rec1234B) MakeVDLTarget() vdl.Target {
return &Rec1234BTarget{Value: m}
}
type Rec1234BTarget struct {
Value *Rec1234B
rec1234Target __VDLTarget9_list
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *Rec1234BTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*Rec1234B)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *Rec1234BTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "B":
target, err := &__VDLTarget11_list{Value: &t.Value.B}, error(nil)
return nil, target, err
case "Rec1234":
t.rec1234Target.Value = &t.Value.Rec1234
target, err := &t.rec1234Target, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.Rec1234B", name)
}
}
func (t *Rec1234BTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *Rec1234BTarget) ZeroField(name string) error {
switch name {
case "B":
t.Value.B = []Rec1234B(nil)
return nil
case "Rec1234":
t.Value.Rec1234 = []Rec1234(nil)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.Rec1234B", name)
}
}
func (t *Rec1234BTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// []Rec1234B
type __VDLTarget11_list struct {
Value *[]Rec1234B
vdl.TargetBase
vdl.ListTargetBase
}
func (t *__VDLTarget11_list) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*[]Rec1234B)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make([]Rec1234B, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *__VDLTarget11_list) StartElem(index int) (elem vdl.Target, _ error) {
target, err := &Rec1234BTarget{Value: &(*t.Value)[index]}, error(nil)
return target, err
}
func (t *__VDLTarget11_list) FinishElem(elem vdl.Target) error {
return nil
}
func (t *__VDLTarget11_list) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x Rec1234B) VDLIsZero() (bool, error) {
if len(x.B) != 0 {
return false, nil
}
if len(x.Rec1234) != 0 {
return false, nil
}
return true, nil
}
func (x Rec1234B) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Rec1234B)(nil)).Elem()); err != nil {
return err
}
if len(x.B) != 0 {
if err := enc.NextField("B"); err != nil {
return err
}
if err := __VDLWriteAnon_list_9(enc, x.B); err != nil {
return err
}
}
if len(x.Rec1234) != 0 {
if err := enc.NextField("Rec1234"); err != nil {
return err
}
if err := __VDLWriteAnon_list_8(enc, x.Rec1234); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_list_9(enc vdl.Encoder, x []Rec1234B) error {
if err := enc.StartValue(vdl.TypeOf((*[]Rec1234B)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Rec1234B) VDLRead(dec vdl.Decoder) error {
*x = Rec1234B{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "B":
if err := __VDLReadAnon_list_9(dec, &x.B); err != nil {
return err
}
case "Rec1234":
if err := __VDLReadAnon_list_8(dec, &x.Rec1234); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
func __VDLReadAnon_list_9(dec vdl.Decoder, x *[]Rec1234B) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make([]Rec1234B, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem Rec1234B
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type Rec1234All struct {
A Rec1234A
B Rec1234B
}
func (Rec1234All) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Rec1234All"`
}) {
}
func (m *Rec1234All) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := true
var var5 bool
if len(m.A.A) == 0 {
var5 = true
}
var4 = var4 && var5
var var6 bool
if len(m.A.Rec1234) == 0 {
var6 = true
}
var4 = var4 && var6
if var4 {
if err := fieldsTarget1.ZeroField("A"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("A")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.A.FillVDLTarget(fieldTarget3, tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var9 := true
var var10 bool
if len(m.B.B) == 0 {
var10 = true
}
var9 = var9 && var10
var var11 bool
if len(m.B.Rec1234) == 0 {
var11 = true
}
var9 = var9 && var11
if var9 {
if err := fieldsTarget1.ZeroField("B"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget7, fieldTarget8, err := fieldsTarget1.StartField("B")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.B.FillVDLTarget(fieldTarget8, tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget7, fieldTarget8); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *Rec1234All) MakeVDLTarget() vdl.Target {
return &Rec1234AllTarget{Value: m}
}
type Rec1234AllTarget struct {
Value *Rec1234All
aTarget Rec1234ATarget
bTarget Rec1234BTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *Rec1234AllTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*Rec1234All)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *Rec1234AllTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "A":
t.aTarget.Value = &t.Value.A
target, err := &t.aTarget, error(nil)
return nil, target, err
case "B":
t.bTarget.Value = &t.Value.B
target, err := &t.bTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.Rec1234All", name)
}
}
func (t *Rec1234AllTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *Rec1234AllTarget) ZeroField(name string) error {
switch name {
case "A":
t.Value.A = Rec1234A{}
return nil
case "B":
t.Value.B = Rec1234B{}
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.Rec1234All", name)
}
}
func (t *Rec1234AllTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x Rec1234All) VDLIsZero() (bool, error) {
isZeroA, err := x.A.VDLIsZero()
if err != nil {
return false, err
}
if !isZeroA {
return false, nil
}
isZeroB, err := x.B.VDLIsZero()
if err != nil {
return false, err
}
if !isZeroB {
return false, nil
}
return true, nil
}
func (x Rec1234All) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Rec1234All)(nil)).Elem()); err != nil {
return err
}
isZeroA, err := x.A.VDLIsZero()
if err != nil {
return err
}
if !isZeroA {
if err := enc.NextField("A"); err != nil {
return err
}
if err := x.A.VDLWrite(enc); err != nil {
return err
}
}
isZeroB, err := x.B.VDLIsZero()
if err != nil {
return err
}
if !isZeroB {
if err := enc.NextField("B"); err != nil {
return err
}
if err := x.B.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Rec1234All) VDLRead(dec vdl.Decoder) error {
*x = Rec1234All{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "A":
if err := x.A.VDLRead(dec); err != nil {
return err
}
case "B":
if err := x.B.VDLRead(dec); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
// Additional types for compatibility and conversion checks
type ListString []string
func (ListString) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.ListString"`
}) {
}
func (m *ListString) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elemTarget2.FromString(string(elem3), tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *ListString) MakeVDLTarget() vdl.Target {
return &ListStringTarget{Value: m}
}
// ListString
type ListStringTarget struct {
Value *ListString
elemTarget vdl.StringTarget
vdl.TargetBase
vdl.ListTargetBase
}
func (t *ListStringTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*ListString)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(ListString, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *ListStringTarget) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *ListStringTarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *ListStringTarget) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x ListString) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x ListString) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ListString)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x[i]); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *ListString) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(ListString, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem string
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = append(*x, elem)
}
}
type Array3String [3]string
func (Array3String) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Array3String"`
}) {
}
func (m *Array3String) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, 3)
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elemTarget2.FromString(string(elem3), tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *Array3String) MakeVDLTarget() vdl.Target {
return &Array3StringTarget{Value: m}
}
// Array3String
type Array3StringTarget struct {
Value *Array3String
elemTarget vdl.StringTarget
vdl.TargetBase
vdl.ListTargetBase
}
func (t *Array3StringTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*Array3String)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *Array3StringTarget) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *Array3StringTarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *Array3StringTarget) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x Array3String) VDLIsZero() (bool, error) {
return x == Array3String{}, nil
}
func (x Array3String) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Array3String)(nil))); err != nil {
return err
}
for i := 0; i < 3; i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x[i]); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Array3String) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible array %T, from %v", *x, dec.Type())
}
index := 0
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done != (index >= len(*x)):
return fmt.Errorf("array len mismatch, got %d, want %T", index, *x)
case done:
return dec.FinishValue()
}
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x[index], err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
index++
}
}
type Array4String [4]string
func (Array4String) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.Array4String"`
}) {
}
func (m *Array4String) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, 4)
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := elemTarget2.FromString(string(elem3), tt.NonOptional().Elem()); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *Array4String) MakeVDLTarget() vdl.Target {
return &Array4StringTarget{Value: m}
}
// Array4String
type Array4StringTarget struct {
Value *Array4String
elemTarget vdl.StringTarget
vdl.TargetBase
vdl.ListTargetBase
}
func (t *Array4StringTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*Array4String)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *Array4StringTarget) StartElem(index int) (elem vdl.Target, _ error) {
t.elemTarget.Value = &(*t.Value)[index]
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *Array4StringTarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *Array4StringTarget) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x Array4String) VDLIsZero() (bool, error) {
return x == Array4String{}, nil
}
func (x Array4String) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Array4String)(nil))); err != nil {
return err
}
for i := 0; i < 4; i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x[i]); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *Array4String) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible array %T, from %v", *x, dec.Type())
}
index := 0
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done != (index >= len(*x)):
return fmt.Errorf("array len mismatch, got %d, want %T", index, *x)
case done:
return dec.FinishValue()
}
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x[index], err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
index++
}
}
type AbcStruct struct {
A bool
B string
C int64
}
func (AbcStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.AbcStruct"`
}) {
}
func (m *AbcStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.A == false)
if var4 {
if err := fieldsTarget1.ZeroField("A"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("A")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromBool(bool(m.A), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.B == "")
if var7 {
if err := fieldsTarget1.ZeroField("B"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("B")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget6.FromString(string(m.B), tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.C == int64(0))
if var10 {
if err := fieldsTarget1.ZeroField("C"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("C")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget9.FromInt(int64(m.C), tt.NonOptional().Field(2).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *AbcStruct) MakeVDLTarget() vdl.Target {
return &AbcStructTarget{Value: m}
}
type AbcStructTarget struct {
Value *AbcStruct
aTarget vdl.BoolTarget
bTarget vdl.StringTarget
cTarget vdl.Int64Target
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *AbcStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*AbcStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *AbcStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "A":
t.aTarget.Value = &t.Value.A
target, err := &t.aTarget, error(nil)
return nil, target, err
case "B":
t.bTarget.Value = &t.Value.B
target, err := &t.bTarget, error(nil)
return nil, target, err
case "C":
t.cTarget.Value = &t.Value.C
target, err := &t.cTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.AbcStruct", name)
}
}
func (t *AbcStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *AbcStructTarget) ZeroField(name string) error {
switch name {
case "A":
t.Value.A = false
return nil
case "B":
t.Value.B = ""
return nil
case "C":
t.Value.C = int64(0)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.AbcStruct", name)
}
}
func (t *AbcStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x AbcStruct) VDLIsZero() (bool, error) {
return x == AbcStruct{}, nil
}
func (x AbcStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*AbcStruct)(nil)).Elem()); err != nil {
return err
}
if x.A {
if err := enc.NextField("A"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.A); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.B != "" {
if err := enc.NextField("B"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.B); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.C != 0 {
if err := enc.NextField("C"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int64)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(x.C); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *AbcStruct) VDLRead(dec vdl.Decoder) error {
*x = AbcStruct{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "A":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.A, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "B":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.B, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "C":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.C, err = dec.DecodeInt(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type AdeStruct struct {
A bool
D *vdl.Value
E *vdl.Type
}
func (AdeStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.AdeStruct"`
}) {
}
func (m *AdeStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.A == false)
if var4 {
if err := fieldsTarget1.ZeroField("A"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("A")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromBool(bool(m.A), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := m.D == nil || (m.D.Kind() == vdl.Any && m.D.IsZero())
if var7 {
if err := fieldsTarget1.ZeroField("D"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("D")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := vdl.FromValue(fieldTarget6, m.D); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.E == nil || m.E == vdl.AnyType)
if var10 {
if err := fieldsTarget1.ZeroField("E"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("E")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
typeObjectVal11 := m.E
if typeObjectVal11 == nil {
typeObjectVal11 = vdl.AnyType
}
if err := fieldTarget9.FromTypeObject(typeObjectVal11); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *AdeStruct) MakeVDLTarget() vdl.Target {
return &AdeStructTarget{Value: m}
}
type AdeStructTarget struct {
Value *AdeStruct
aTarget vdl.BoolTarget
eTarget vdl.TypeObjectTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *AdeStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*AdeStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *AdeStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "A":
t.aTarget.Value = &t.Value.A
target, err := &t.aTarget, error(nil)
return nil, target, err
case "D":
target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.D))
return nil, target, err
case "E":
t.eTarget.Value = &t.Value.E
target, err := &t.eTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.AdeStruct", name)
}
}
func (t *AdeStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *AdeStructTarget) ZeroField(name string) error {
switch name {
case "A":
t.Value.A = false
return nil
case "D":
t.Value.D = vdl.ZeroValue(vdl.AnyType)
return nil
case "E":
t.Value.E = vdl.AnyType
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.AdeStruct", name)
}
}
func (t *AdeStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x AdeStruct) VDLIsZero() (bool, error) {
if x.A {
return false, nil
}
var isZeroD bool
if x.D != nil {
var err error
if isZeroD, err = x.D.VDLIsZero(); err != nil {
return false, err
}
}
if x.D != nil && !isZeroD {
return false, nil
}
if x.E != nil && x.E != vdl.AnyType {
return false, nil
}
return true, nil
}
func (x AdeStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*AdeStruct)(nil)).Elem()); err != nil {
return err
}
if x.A {
if err := enc.NextField("A"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.A); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
var isZeroD bool
if x.D != nil {
var err error
if isZeroD, err = x.D.VDLIsZero(); err != nil {
return err
}
}
if x.D != nil && !isZeroD {
if err := enc.NextField("D"); err != nil {
return err
}
if err := enc.StartValue(vdl.AnyType); err != nil {
return err
}
switch {
case x.D.IsNil():
if err := enc.NilValue(x.D.Type()); err != nil {
return err
}
default:
if err := x.D.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.E != nil && x.E != vdl.AnyType {
if err := enc.NextField("E"); err != nil {
return err
}
if err := x.E.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *AdeStruct) VDLRead(dec vdl.Decoder) error {
*x = AdeStruct{
D: vdl.ZeroValue(vdl.AnyType),
E: vdl.AnyType,
}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "A":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.A, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "D":
x.D = new(vdl.Value)
if err := x.D.VDLRead(dec); err != nil {
return err
}
case "E":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.E, err = dec.DecodeTypeObject(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type XyzStruct struct {
X bool
Y MBool
Z string
}
func (XyzStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.XyzStruct"`
}) {
}
func (m *XyzStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.X == false)
if var4 {
if err := fieldsTarget1.ZeroField("X"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("X")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromBool(bool(m.X), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.Y == MBool(false))
if var7 {
if err := fieldsTarget1.ZeroField("Y"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("Y")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.Y.FillVDLTarget(fieldTarget6, tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.Z == "")
if var10 {
if err := fieldsTarget1.ZeroField("Z"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("Z")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget9.FromString(string(m.Z), tt.NonOptional().Field(2).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *XyzStruct) MakeVDLTarget() vdl.Target {
return &XyzStructTarget{Value: m}
}
type XyzStructTarget struct {
Value *XyzStruct
xTarget vdl.BoolTarget
yTarget MBoolTarget
zTarget vdl.StringTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *XyzStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*XyzStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *XyzStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "X":
t.xTarget.Value = &t.Value.X
target, err := &t.xTarget, error(nil)
return nil, target, err
case "Y":
t.yTarget.Value = &t.Value.Y
target, err := &t.yTarget, error(nil)
return nil, target, err
case "Z":
t.zTarget.Value = &t.Value.Z
target, err := &t.zTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.XyzStruct", name)
}
}
func (t *XyzStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *XyzStructTarget) ZeroField(name string) error {
switch name {
case "X":
t.Value.X = false
return nil
case "Y":
t.Value.Y = MBool(false)
return nil
case "Z":
t.Value.Z = ""
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.XyzStruct", name)
}
}
func (t *XyzStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x XyzStruct) VDLIsZero() (bool, error) {
return x == XyzStruct{}, nil
}
func (x XyzStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*XyzStruct)(nil)).Elem()); err != nil {
return err
}
if x.X {
if err := enc.NextField("X"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.X); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Y {
if err := enc.NextField("Y"); err != nil {
return err
}
if err := x.Y.VDLWrite(enc); err != nil {
return err
}
}
if x.Z != "" {
if err := enc.NextField("Z"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.Z); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *XyzStruct) VDLRead(dec vdl.Decoder) error {
*x = XyzStruct{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "X":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.X, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Y":
if err := x.Y.VDLRead(dec); err != nil {
return err
}
case "Z":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Z, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type YzStruct struct {
Y NBool
Z NString
}
func (YzStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.YzStruct"`
}) {
}
func (m *YzStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.Y == NBool(false))
if var4 {
if err := fieldsTarget1.ZeroField("Y"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Y")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.Y.FillVDLTarget(fieldTarget3, tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.Z == NString(""))
if var7 {
if err := fieldsTarget1.ZeroField("Z"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("Z")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.Z.FillVDLTarget(fieldTarget6, tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *YzStruct) MakeVDLTarget() vdl.Target {
return &YzStructTarget{Value: m}
}
type YzStructTarget struct {
Value *YzStruct
yTarget NBoolTarget
zTarget NStringTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *YzStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*YzStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *YzStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Y":
t.yTarget.Value = &t.Value.Y
target, err := &t.yTarget, error(nil)
return nil, target, err
case "Z":
t.zTarget.Value = &t.Value.Z
target, err := &t.zTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.YzStruct", name)
}
}
func (t *YzStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *YzStructTarget) ZeroField(name string) error {
switch name {
case "Y":
t.Value.Y = NBool(false)
return nil
case "Z":
t.Value.Z = NString("")
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.YzStruct", name)
}
}
func (t *YzStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x YzStruct) VDLIsZero() (bool, error) {
return x == YzStruct{}, nil
}
func (x YzStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*YzStruct)(nil)).Elem()); err != nil {
return err
}
if x.Y {
if err := enc.NextField("Y"); err != nil {
return err
}
if err := x.Y.VDLWrite(enc); err != nil {
return err
}
}
if x.Z != "" {
if err := enc.NextField("Z"); err != nil {
return err
}
if err := x.Z.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *YzStruct) VDLRead(dec vdl.Decoder) error {
*x = YzStruct{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Y":
if err := x.Y.VDLRead(dec); err != nil {
return err
}
case "Z":
if err := x.Z.VDLRead(dec); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type ZStruct struct {
Z string
}
func (ZStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.ZStruct"`
}) {
}
func (m *ZStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.Z == "")
if var4 {
if err := fieldsTarget1.ZeroField("Z"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Z")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromString(string(m.Z), tt.NonOptional().Field(0).Type); 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 *ZStruct) MakeVDLTarget() vdl.Target {
return &ZStructTarget{Value: m}
}
type ZStructTarget struct {
Value *ZStruct
zTarget vdl.StringTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *ZStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*ZStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *ZStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Z":
t.zTarget.Value = &t.Value.Z
target, err := &t.zTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.ZStruct", name)
}
}
func (t *ZStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *ZStructTarget) ZeroField(name string) error {
switch name {
case "Z":
t.Value.Z = ""
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.ZStruct", name)
}
}
func (t *ZStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x ZStruct) VDLIsZero() (bool, error) {
return x == ZStruct{}, nil
}
func (x ZStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ZStruct)(nil)).Elem()); err != nil {
return err
}
if x.Z != "" {
if err := enc.NextField("Z"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.Z); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *ZStruct) VDLRead(dec vdl.Decoder) error {
*x = ZStruct{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Z":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Z, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type MapOnlyStruct struct {
Key1 int64
Key2 uint32
}
func (MapOnlyStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MapOnlyStruct"`
}) {
}
func (m *MapOnlyStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.Key1 == int64(0))
if var4 {
if err := fieldsTarget1.ZeroField("Key1"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Key1")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(m.Key1), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.Key2 == uint32(0))
if var7 {
if err := fieldsTarget1.ZeroField("Key2"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("Key2")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget6.FromUint(uint64(m.Key2), tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *MapOnlyStruct) MakeVDLTarget() vdl.Target {
return &MapOnlyStructTarget{Value: m}
}
type MapOnlyStructTarget struct {
Value *MapOnlyStruct
key1Target vdl.Int64Target
key2Target vdl.Uint32Target
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *MapOnlyStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*MapOnlyStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *MapOnlyStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Key1":
t.key1Target.Value = &t.Value.Key1
target, err := &t.key1Target, error(nil)
return nil, target, err
case "Key2":
t.key2Target.Value = &t.Value.Key2
target, err := &t.key2Target, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.MapOnlyStruct", name)
}
}
func (t *MapOnlyStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *MapOnlyStructTarget) ZeroField(name string) error {
switch name {
case "Key1":
t.Value.Key1 = int64(0)
return nil
case "Key2":
t.Value.Key2 = uint32(0)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.MapOnlyStruct", name)
}
}
func (t *MapOnlyStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x MapOnlyStruct) VDLIsZero() (bool, error) {
return x == MapOnlyStruct{}, nil
}
func (x MapOnlyStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MapOnlyStruct)(nil)).Elem()); err != nil {
return err
}
if x.Key1 != 0 {
if err := enc.NextField("Key1"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int64)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(x.Key1); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Key2 != 0 {
if err := enc.NextField("Key2"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint32)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(x.Key2)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MapOnlyStruct) VDLRead(dec vdl.Decoder) error {
*x = MapOnlyStruct{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Key1":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Key1, err = dec.DecodeInt(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Key2":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(32)
if err != nil {
return err
}
x.Key2 = uint32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type StructOnlyMap map[string]uint64
func (StructOnlyMap) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.StructOnlyMap"`
}) {
}
func (m *StructOnlyMap) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromString(string(key3), tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := valueTarget4.FromUint(uint64(value5), tt.NonOptional().Elem()); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *StructOnlyMap) MakeVDLTarget() vdl.Target {
return &StructOnlyMapTarget{Value: m}
}
type StructOnlyMapTarget struct {
Value *StructOnlyMap
currKey string
currElem uint64
keyTarget vdl.StringTarget
elemTarget vdl.Uint64Target
vdl.TargetBase
vdl.MapTargetBase
}
func (t *StructOnlyMapTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*StructOnlyMap)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(StructOnlyMap)
return t, nil
}
func (t *StructOnlyMapTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = ""
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *StructOnlyMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = uint64(0)
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *StructOnlyMapTarget) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *StructOnlyMapTarget) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x StructOnlyMap) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x StructOnlyMap) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*StructOnlyMap)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint64)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(elem); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *StructOnlyMap) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap StructOnlyMap
if len := dec.LenHint(); len > 0 {
tmpMap = make(StructOnlyMap, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key string
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem uint64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeUint(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(StructOnlyMap)
}
tmpMap[key] = elem
}
}
type MapSetStruct struct {
Feat bool
Tire bool
Eel bool
}
func (MapSetStruct) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MapSetStruct"`
}) {
}
func (m *MapSetStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.Feat == false)
if var4 {
if err := fieldsTarget1.ZeroField("Feat"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Feat")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromBool(bool(m.Feat), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.Tire == false)
if var7 {
if err := fieldsTarget1.ZeroField("Tire"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("Tire")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget6.FromBool(bool(m.Tire), tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.Eel == false)
if var10 {
if err := fieldsTarget1.ZeroField("Eel"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("Eel")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget9.FromBool(bool(m.Eel), tt.NonOptional().Field(2).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *MapSetStruct) MakeVDLTarget() vdl.Target {
return &MapSetStructTarget{Value: m}
}
type MapSetStructTarget struct {
Value *MapSetStruct
featTarget vdl.BoolTarget
tireTarget vdl.BoolTarget
eelTarget vdl.BoolTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *MapSetStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*MapSetStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *MapSetStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Feat":
t.featTarget.Value = &t.Value.Feat
target, err := &t.featTarget, error(nil)
return nil, target, err
case "Tire":
t.tireTarget.Value = &t.Value.Tire
target, err := &t.tireTarget, error(nil)
return nil, target, err
case "Eel":
t.eelTarget.Value = &t.Value.Eel
target, err := &t.eelTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.MapSetStruct", name)
}
}
func (t *MapSetStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *MapSetStructTarget) ZeroField(name string) error {
switch name {
case "Feat":
t.Value.Feat = false
return nil
case "Tire":
t.Value.Tire = false
return nil
case "Eel":
t.Value.Eel = false
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.MapSetStruct", name)
}
}
func (t *MapSetStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x MapSetStruct) VDLIsZero() (bool, error) {
return x == MapSetStruct{}, nil
}
func (x MapSetStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MapSetStruct)(nil)).Elem()); err != nil {
return err
}
if x.Feat {
if err := enc.NextField("Feat"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.Feat); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Tire {
if err := enc.NextField("Tire"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.Tire); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Eel {
if err := enc.NextField("Eel"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.Eel); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MapSetStruct) VDLRead(dec vdl.Decoder) error {
*x = MapSetStruct{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Feat":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Feat, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Tire":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Tire, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Eel":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Eel, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type SetStructMap map[string]bool
func (SetStructMap) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.SetStructMap"`
}) {
}
func (m *SetStructMap) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromString(string(key3), tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := valueTarget4.FromBool(bool(value5), tt.NonOptional().Elem()); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *SetStructMap) MakeVDLTarget() vdl.Target {
return &SetStructMapTarget{Value: m}
}
type SetStructMapTarget struct {
Value *SetStructMap
currKey string
currElem bool
keyTarget vdl.StringTarget
elemTarget vdl.BoolTarget
vdl.TargetBase
vdl.MapTargetBase
}
func (t *SetStructMapTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*SetStructMap)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(SetStructMap)
return t, nil
}
func (t *SetStructMapTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = ""
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *SetStructMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = false
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *SetStructMapTarget) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *SetStructMapTarget) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x SetStructMap) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x SetStructMap) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*SetStructMap)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(elem); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *SetStructMap) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap SetStructMap
if len := dec.LenHint(); len > 0 {
tmpMap = make(SetStructMap, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key string
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem bool
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(SetStructMap)
}
tmpMap[key] = elem
}
}
type MapStructSet map[string]struct{}
func (MapStructSet) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MapStructSet"`
}) {
}
func (m *MapStructSet) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
setTarget1, err := t.StartSet(tt, len((*m)))
if err != nil {
return err
}
for key3 := range *m {
keyTarget2, err := setTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromString(string(key3), tt.NonOptional().Key()); err != nil {
return err
}
if err := setTarget1.FinishKey(keyTarget2); err != nil {
return err
}
}
if err := t.FinishSet(setTarget1); err != nil {
return err
}
return nil
}
func (m *MapStructSet) MakeVDLTarget() vdl.Target {
return &MapStructSetTarget{Value: m}
}
type MapStructSetTarget struct {
Value *MapStructSet
currKey string
keyTarget vdl.StringTarget
vdl.TargetBase
vdl.SetTargetBase
}
func (t *MapStructSetTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
if ttWant := vdl.TypeOf((*MapStructSet)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(MapStructSet)
return t, nil
}
func (t *MapStructSetTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = ""
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *MapStructSetTarget) FinishKey(key vdl.Target) error {
(*t.Value)[t.currKey] = struct{}{}
return nil
}
func (t *MapStructSetTarget) FinishSet(list vdl.SetTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x MapStructSet) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MapStructSet) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MapStructSet)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MapStructSet) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible set %T, from %v", *x, dec.Type())
}
var tmpMap MapStructSet
if len := dec.LenHint(); len > 0 {
tmpMap = make(MapStructSet, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key string
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(MapStructSet)
}
tmpMap[key] = struct{}{}
}
}
type SetOnlyMap map[float64]bool
func (SetOnlyMap) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.SetOnlyMap"`
}) {
}
func (m *SetOnlyMap) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromFloat(float64(key3), tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := valueTarget4.FromBool(bool(value5), tt.NonOptional().Elem()); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *SetOnlyMap) MakeVDLTarget() vdl.Target {
return &SetOnlyMapTarget{Value: m}
}
type SetOnlyMapTarget struct {
Value *SetOnlyMap
currKey float64
currElem bool
keyTarget vdl.Float64Target
elemTarget vdl.BoolTarget
vdl.TargetBase
vdl.MapTargetBase
}
func (t *SetOnlyMapTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*SetOnlyMap)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(SetOnlyMap)
return t, nil
}
func (t *SetOnlyMapTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = float64(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *SetOnlyMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = false
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *SetOnlyMapTarget) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *SetOnlyMapTarget) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x SetOnlyMap) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x SetOnlyMap) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*SetOnlyMap)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*float64)(nil))); err != nil {
return err
}
if err := enc.EncodeFloat(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(elem); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *SetOnlyMap) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap SetOnlyMap
if len := dec.LenHint(); len > 0 {
tmpMap = make(SetOnlyMap, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key float64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeFloat(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem bool
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(SetOnlyMap)
}
tmpMap[key] = elem
}
}
type SometimesSetMap map[float64]*vdl.Value
func (SometimesSetMap) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.SometimesSetMap"`
}) {
}
func (m *SometimesSetMap) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromFloat(float64(key3), tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := vdl.FromValue(valueTarget4, value5); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *SometimesSetMap) MakeVDLTarget() vdl.Target {
return &SometimesSetMapTarget{Value: m}
}
type SometimesSetMapTarget struct {
Value *SometimesSetMap
currKey float64
currElem *vdl.Value
keyTarget vdl.Float64Target
vdl.TargetBase
vdl.MapTargetBase
}
func (t *SometimesSetMapTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*SometimesSetMap)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(SometimesSetMap)
return t, nil
}
func (t *SometimesSetMapTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = float64(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *SometimesSetMapTarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = vdl.ZeroValue(vdl.AnyType)
target, err := vdl.ReflectTarget(reflect.ValueOf(&t.currElem))
return target, err
}
func (t *SometimesSetMapTarget) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *SometimesSetMapTarget) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x SometimesSetMap) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x SometimesSetMap) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*SometimesSetMap)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*float64)(nil))); err != nil {
return err
}
if err := enc.EncodeFloat(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.StartValue(vdl.AnyType); err != nil {
return err
}
switch {
case elem == nil:
if err := enc.NilValue(vdl.AnyType); err != nil {
return err
}
case elem.IsNil():
if err := enc.NilValue(elem.Type()); err != nil {
return err
}
default:
if err := elem.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *SometimesSetMap) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap SometimesSetMap
if len := dec.LenHint(); len > 0 {
tmpMap = make(SometimesSetMap, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key float64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeFloat(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem *vdl.Value
{
elem = new(vdl.Value)
if err := elem.VDLRead(dec); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(SometimesSetMap)
}
tmpMap[key] = elem
}
}
type MapOnlySet map[float64]struct{}
func (MapOnlySet) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MapOnlySet"`
}) {
}
func (m *MapOnlySet) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
setTarget1, err := t.StartSet(tt, len((*m)))
if err != nil {
return err
}
for key3 := range *m {
keyTarget2, err := setTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromFloat(float64(key3), tt.NonOptional().Key()); err != nil {
return err
}
if err := setTarget1.FinishKey(keyTarget2); err != nil {
return err
}
}
if err := t.FinishSet(setTarget1); err != nil {
return err
}
return nil
}
func (m *MapOnlySet) MakeVDLTarget() vdl.Target {
return &MapOnlySetTarget{Value: m}
}
type MapOnlySetTarget struct {
Value *MapOnlySet
currKey float64
keyTarget vdl.Float64Target
vdl.TargetBase
vdl.SetTargetBase
}
func (t *MapOnlySetTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
if ttWant := vdl.TypeOf((*MapOnlySet)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(MapOnlySet)
return t, nil
}
func (t *MapOnlySetTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = float64(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *MapOnlySetTarget) FinishKey(key vdl.Target) error {
(*t.Value)[t.currKey] = struct{}{}
return nil
}
func (t *MapOnlySetTarget) FinishSet(list vdl.SetTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x MapOnlySet) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MapOnlySet) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MapOnlySet)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*float64)(nil))); err != nil {
return err
}
if err := enc.EncodeFloat(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MapOnlySet) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible set %T, from %v", *x, dec.Type())
}
var tmpMap MapOnlySet
if len := dec.LenHint(); len > 0 {
tmpMap = make(MapOnlySet, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key float64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeFloat(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(MapOnlySet)
}
tmpMap[key] = struct{}{}
}
}
type SetOnlyA map[bool]struct{}
func (SetOnlyA) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.SetOnlyA"`
}) {
}
func (m *SetOnlyA) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
setTarget1, err := t.StartSet(tt, len((*m)))
if err != nil {
return err
}
for key3 := range *m {
keyTarget2, err := setTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromBool(bool(key3), tt.NonOptional().Key()); err != nil {
return err
}
if err := setTarget1.FinishKey(keyTarget2); err != nil {
return err
}
}
if err := t.FinishSet(setTarget1); err != nil {
return err
}
return nil
}
func (m *SetOnlyA) MakeVDLTarget() vdl.Target {
return &SetOnlyATarget{Value: m}
}
type SetOnlyATarget struct {
Value *SetOnlyA
currKey bool
keyTarget vdl.BoolTarget
vdl.TargetBase
vdl.SetTargetBase
}
func (t *SetOnlyATarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
if ttWant := vdl.TypeOf((*SetOnlyA)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(SetOnlyA)
return t, nil
}
func (t *SetOnlyATarget) StartKey() (key vdl.Target, _ error) {
t.currKey = false
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *SetOnlyATarget) FinishKey(key vdl.Target) error {
(*t.Value)[t.currKey] = struct{}{}
return nil
}
func (t *SetOnlyATarget) FinishSet(list vdl.SetTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x SetOnlyA) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x SetOnlyA) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*SetOnlyA)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *SetOnlyA) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible set %T, from %v", *x, dec.Type())
}
var tmpMap SetOnlyA
if len := dec.LenHint(); len > 0 {
tmpMap = make(SetOnlyA, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key bool
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(SetOnlyA)
}
tmpMap[key] = struct{}{}
}
}
type SetOnlyA2 map[NBool]struct{}
func (SetOnlyA2) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.SetOnlyA2"`
}) {
}
func (m *SetOnlyA2) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
setTarget1, err := t.StartSet(tt, len((*m)))
if err != nil {
return err
}
for key3 := range *m {
keyTarget2, err := setTarget1.StartKey()
if err != nil {
return err
}
if err := key3.FillVDLTarget(keyTarget2, tt.NonOptional().Key()); err != nil {
return err
}
if err := setTarget1.FinishKey(keyTarget2); err != nil {
return err
}
}
if err := t.FinishSet(setTarget1); err != nil {
return err
}
return nil
}
func (m *SetOnlyA2) MakeVDLTarget() vdl.Target {
return &SetOnlyA2Target{Value: m}
}
type SetOnlyA2Target struct {
Value *SetOnlyA2
currKey NBool
keyTarget NBoolTarget
vdl.TargetBase
vdl.SetTargetBase
}
func (t *SetOnlyA2Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
if ttWant := vdl.TypeOf((*SetOnlyA2)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(SetOnlyA2)
return t, nil
}
func (t *SetOnlyA2Target) StartKey() (key vdl.Target, _ error) {
t.currKey = NBool(false)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *SetOnlyA2Target) FinishKey(key vdl.Target) error {
(*t.Value)[t.currKey] = struct{}{}
return nil
}
func (t *SetOnlyA2Target) FinishSet(list vdl.SetTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x SetOnlyA2) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x SetOnlyA2) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*SetOnlyA2)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := key.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *SetOnlyA2) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible set %T, from %v", *x, dec.Type())
}
var tmpMap SetOnlyA2
if len := dec.LenHint(); len > 0 {
tmpMap = make(SetOnlyA2, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key NBool
{
if err := key.VDLRead(dec); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(SetOnlyA2)
}
tmpMap[key] = struct{}{}
}
}
type SetOnlyB map[int16]struct{}
func (SetOnlyB) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.SetOnlyB"`
}) {
}
func (m *SetOnlyB) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
setTarget1, err := t.StartSet(tt, len((*m)))
if err != nil {
return err
}
for key3 := range *m {
keyTarget2, err := setTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromInt(int64(key3), tt.NonOptional().Key()); err != nil {
return err
}
if err := setTarget1.FinishKey(keyTarget2); err != nil {
return err
}
}
if err := t.FinishSet(setTarget1); err != nil {
return err
}
return nil
}
func (m *SetOnlyB) MakeVDLTarget() vdl.Target {
return &SetOnlyBTarget{Value: m}
}
type SetOnlyBTarget struct {
Value *SetOnlyB
currKey int16
keyTarget vdl.Int16Target
vdl.TargetBase
vdl.SetTargetBase
}
func (t *SetOnlyBTarget) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
if ttWant := vdl.TypeOf((*SetOnlyB)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(SetOnlyB)
return t, nil
}
func (t *SetOnlyBTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = int16(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *SetOnlyBTarget) FinishKey(key vdl.Target) error {
(*t.Value)[t.currKey] = struct{}{}
return nil
}
func (t *SetOnlyBTarget) FinishSet(list vdl.SetTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x SetOnlyB) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x SetOnlyB) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*SetOnlyB)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int16)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(int64(key)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *SetOnlyB) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible set %T, from %v", *x, dec.Type())
}
var tmpMap SetOnlyB
if len := dec.LenHint(); len > 0 {
tmpMap = make(SetOnlyB, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key int16
{
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(16)
if err != nil {
return err
}
key = int16(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(SetOnlyB)
}
tmpMap[key] = struct{}{}
}
}
type SetOnlyB2 map[NInt16]struct{}
func (SetOnlyB2) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.SetOnlyB2"`
}) {
}
func (m *SetOnlyB2) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
setTarget1, err := t.StartSet(tt, len((*m)))
if err != nil {
return err
}
for key3 := range *m {
keyTarget2, err := setTarget1.StartKey()
if err != nil {
return err
}
if err := key3.FillVDLTarget(keyTarget2, tt.NonOptional().Key()); err != nil {
return err
}
if err := setTarget1.FinishKey(keyTarget2); err != nil {
return err
}
}
if err := t.FinishSet(setTarget1); err != nil {
return err
}
return nil
}
func (m *SetOnlyB2) MakeVDLTarget() vdl.Target {
return &SetOnlyB2Target{Value: m}
}
type SetOnlyB2Target struct {
Value *SetOnlyB2
currKey NInt16
keyTarget NInt16Target
vdl.TargetBase
vdl.SetTargetBase
}
func (t *SetOnlyB2Target) StartSet(tt *vdl.Type, len int) (vdl.SetTarget, error) {
if ttWant := vdl.TypeOf((*SetOnlyB2)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(SetOnlyB2)
return t, nil
}
func (t *SetOnlyB2Target) StartKey() (key vdl.Target, _ error) {
t.currKey = NInt16(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *SetOnlyB2Target) FinishKey(key vdl.Target) error {
(*t.Value)[t.currKey] = struct{}{}
return nil
}
func (t *SetOnlyB2Target) FinishSet(list vdl.SetTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x SetOnlyB2) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x SetOnlyB2) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*SetOnlyB2)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := key.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *SetOnlyB2) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible set %T, from %v", *x, dec.Type())
}
var tmpMap SetOnlyB2
if len := dec.LenHint(); len > 0 {
tmpMap = make(SetOnlyB2, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key NInt16
{
if err := key.VDLRead(dec); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(SetOnlyB2)
}
tmpMap[key] = struct{}{}
}
}
type MapOnlyA map[uint32]uint32
func (MapOnlyA) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MapOnlyA"`
}) {
}
func (m *MapOnlyA) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromUint(uint64(key3), tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := valueTarget4.FromUint(uint64(value5), tt.NonOptional().Elem()); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *MapOnlyA) MakeVDLTarget() vdl.Target {
return &MapOnlyATarget{Value: m}
}
type MapOnlyATarget struct {
Value *MapOnlyA
currKey uint32
currElem uint32
keyTarget vdl.Uint32Target
elemTarget vdl.Uint32Target
vdl.TargetBase
vdl.MapTargetBase
}
func (t *MapOnlyATarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*MapOnlyA)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(MapOnlyA)
return t, nil
}
func (t *MapOnlyATarget) StartKey() (key vdl.Target, _ error) {
t.currKey = uint32(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *MapOnlyATarget) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = uint32(0)
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *MapOnlyATarget) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *MapOnlyATarget) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x MapOnlyA) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MapOnlyA) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MapOnlyA)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint32)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(key)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint32)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(elem)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MapOnlyA) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap MapOnlyA
if len := dec.LenHint(); len > 0 {
tmpMap = make(MapOnlyA, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key uint32
{
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(32)
if err != nil {
return err
}
key = uint32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem uint32
{
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(32)
if err != nil {
return err
}
elem = uint32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(MapOnlyA)
}
tmpMap[key] = elem
}
}
type MapOnlyA2 map[int64]float64
func (MapOnlyA2) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MapOnlyA2"`
}) {
}
func (m *MapOnlyA2) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromInt(int64(key3), tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := valueTarget4.FromFloat(float64(value5), tt.NonOptional().Elem()); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *MapOnlyA2) MakeVDLTarget() vdl.Target {
return &MapOnlyA2Target{Value: m}
}
type MapOnlyA2Target struct {
Value *MapOnlyA2
currKey int64
currElem float64
keyTarget vdl.Int64Target
elemTarget vdl.Float64Target
vdl.TargetBase
vdl.MapTargetBase
}
func (t *MapOnlyA2Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*MapOnlyA2)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(MapOnlyA2)
return t, nil
}
func (t *MapOnlyA2Target) StartKey() (key vdl.Target, _ error) {
t.currKey = int64(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *MapOnlyA2Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = float64(0)
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *MapOnlyA2Target) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *MapOnlyA2Target) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x MapOnlyA2) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MapOnlyA2) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MapOnlyA2)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int64)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*float64)(nil))); err != nil {
return err
}
if err := enc.EncodeFloat(elem); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MapOnlyA2) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap MapOnlyA2
if len := dec.LenHint(); len > 0 {
tmpMap = make(MapOnlyA2, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key int64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeInt(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem float64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeFloat(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(MapOnlyA2)
}
tmpMap[key] = elem
}
}
type MapOnlyB map[bool]string
func (MapOnlyB) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MapOnlyB"`
}) {
}
func (m *MapOnlyB) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := keyTarget2.FromBool(bool(key3), tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := valueTarget4.FromString(string(value5), tt.NonOptional().Elem()); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *MapOnlyB) MakeVDLTarget() vdl.Target {
return &MapOnlyBTarget{Value: m}
}
type MapOnlyBTarget struct {
Value *MapOnlyB
currKey bool
currElem string
keyTarget vdl.BoolTarget
elemTarget vdl.StringTarget
vdl.TargetBase
vdl.MapTargetBase
}
func (t *MapOnlyBTarget) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*MapOnlyB)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(MapOnlyB)
return t, nil
}
func (t *MapOnlyBTarget) StartKey() (key vdl.Target, _ error) {
t.currKey = false
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *MapOnlyBTarget) 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 *MapOnlyBTarget) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *MapOnlyBTarget) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x MapOnlyB) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MapOnlyB) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MapOnlyB)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(elem); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MapOnlyB) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap MapOnlyB
if len := dec.LenHint(); len > 0 {
tmpMap = make(MapOnlyB, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key bool
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem string
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(MapOnlyB)
}
tmpMap[key] = elem
}
}
type MapOnlyB2 map[NBool]NString
func (MapOnlyB2) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.MapOnlyB2"`
}) {
}
func (m *MapOnlyB2) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
mapTarget1, err := t.StartMap(tt, len((*m)))
if err != nil {
return err
}
for key3, value5 := range *m {
keyTarget2, err := mapTarget1.StartKey()
if err != nil {
return err
}
if err := key3.FillVDLTarget(keyTarget2, tt.NonOptional().Key()); err != nil {
return err
}
valueTarget4, err := mapTarget1.FinishKeyStartField(keyTarget2)
if err != nil {
return err
}
if err := value5.FillVDLTarget(valueTarget4, tt.NonOptional().Elem()); err != nil {
return err
}
if err := mapTarget1.FinishField(keyTarget2, valueTarget4); err != nil {
return err
}
}
if err := t.FinishMap(mapTarget1); err != nil {
return err
}
return nil
}
func (m *MapOnlyB2) MakeVDLTarget() vdl.Target {
return &MapOnlyB2Target{Value: m}
}
type MapOnlyB2Target struct {
Value *MapOnlyB2
currKey NBool
currElem NString
keyTarget NBoolTarget
elemTarget NStringTarget
vdl.TargetBase
vdl.MapTargetBase
}
func (t *MapOnlyB2Target) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*MapOnlyB2)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(MapOnlyB2)
return t, nil
}
func (t *MapOnlyB2Target) StartKey() (key vdl.Target, _ error) {
t.currKey = NBool(false)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *MapOnlyB2Target) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = NString("")
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *MapOnlyB2Target) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *MapOnlyB2Target) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x MapOnlyB2) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x MapOnlyB2) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MapOnlyB2)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := key.VDLWrite(enc); err != nil {
return err
}
if err := elem.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *MapOnlyB2) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap MapOnlyB2
if len := dec.LenHint(); len > 0 {
tmpMap = make(MapOnlyB2, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key NBool
{
if err := key.VDLRead(dec); err != nil {
return err
}
}
var elem NString
{
if err := elem.VDLRead(dec); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(MapOnlyB2)
}
tmpMap[key] = elem
}
}
type (
// BdeUnion represents any single field of the BdeUnion union type.
BdeUnion interface {
// Index returns the field index.
Index() int
// Interface returns the field value as an interface.
Interface() interface{}
// Name returns the field name.
Name() string
// __VDLReflect describes the BdeUnion union type.
__VDLReflect(__BdeUnionReflect)
FillVDLTarget(vdl.Target, *vdl.Type) error
VDLIsZero() (bool, error)
VDLWrite(vdl.Encoder) error
}
// BdeUnionB represents field B of the BdeUnion union type.
BdeUnionB struct{ Value string }
// BdeUnionD represents field D of the BdeUnion union type.
BdeUnionD struct{ Value *vdl.Value }
// BdeUnionE represents field E of the BdeUnion union type.
BdeUnionE struct{ Value *vdl.Type }
// __BdeUnionReflect describes the BdeUnion union type.
__BdeUnionReflect struct {
Name string `vdl:"v.io/v23/vom/testdata/types.BdeUnion"`
Type BdeUnion
UnionTargetFactory bdeUnionTargetFactory
Union struct {
B BdeUnionB
D BdeUnionD
E BdeUnionE
}
}
)
func (x BdeUnionB) Index() int { return 0 }
func (x BdeUnionB) Interface() interface{} { return x.Value }
func (x BdeUnionB) Name() string { return "B" }
func (x BdeUnionB) __VDLReflect(__BdeUnionReflect) {}
func (m BdeUnionB) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("B")
if err != nil {
return err
}
if err := fieldTarget3.FromString(string(m.Value), tt.NonOptional().Field(0).Type); 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 BdeUnionB) MakeVDLTarget() vdl.Target {
return nil
}
func (x BdeUnionD) Index() int { return 1 }
func (x BdeUnionD) Interface() interface{} { return x.Value }
func (x BdeUnionD) Name() string { return "D" }
func (x BdeUnionD) __VDLReflect(__BdeUnionReflect) {}
func (m BdeUnionD) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("D")
if err != nil {
return err
}
if err := vdl.FromValue(fieldTarget3, m.Value); 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 BdeUnionD) MakeVDLTarget() vdl.Target {
return nil
}
func (x BdeUnionE) Index() int { return 2 }
func (x BdeUnionE) Interface() interface{} { return x.Value }
func (x BdeUnionE) Name() string { return "E" }
func (x BdeUnionE) __VDLReflect(__BdeUnionReflect) {}
func (m BdeUnionE) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("E")
if err != nil {
return err
}
typeObjectVal4 := m.Value
if typeObjectVal4 == nil {
typeObjectVal4 = vdl.AnyType
}
if err := fieldTarget3.FromTypeObject(typeObjectVal4); 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 BdeUnionE) MakeVDLTarget() vdl.Target {
return nil
}
type BdeUnionTarget struct {
Value *BdeUnion
fieldName string
anyValue vdl.Value
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *BdeUnionTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*BdeUnion)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *BdeUnionTarget) StartField(name string) (key, field vdl.Target, _ error) {
t.fieldName = name
switch name {
case "B":
val := ""
return nil, &vdl.StringTarget{Value: &val}, nil
case "D":
t.anyValue = vdl.Value{}
target, err := vdl.ValueTarget(&t.anyValue)
return nil, target, err
case "E":
val := vdl.AnyType
return nil, &vdl.TypeObjectTarget{Value: &val}, nil
default:
return nil, nil, fmt.Errorf("field %s not in union v.io/v23/vom/testdata/types.BdeUnion", name)
}
}
func (t *BdeUnionTarget) FinishField(_, fieldTarget vdl.Target) error {
switch t.fieldName {
case "B":
*t.Value = BdeUnionB{*(fieldTarget.(*vdl.StringTarget)).Value}
case "D":
*t.Value = BdeUnionD{&t.anyValue}
case "E":
*t.Value = BdeUnionE{*(fieldTarget.(*vdl.TypeObjectTarget)).Value}
}
return nil
}
func (t *BdeUnionTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
type bdeUnionTargetFactory struct{}
func (t bdeUnionTargetFactory) VDLMakeUnionTarget(union interface{}) (vdl.Target, error) {
if typedUnion, ok := union.(*BdeUnion); ok {
return &BdeUnionTarget{Value: typedUnion}, nil
}
return nil, fmt.Errorf("got %T, want *BdeUnion", union)
}
func (x BdeUnionB) VDLIsZero() (bool, error) {
return x.Value == "", nil
}
func (x BdeUnionD) VDLIsZero() (bool, error) {
return false, nil
}
func (x BdeUnionE) VDLIsZero() (bool, error) {
return false, nil
}
func (x BdeUnionB) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*BdeUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("B"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.Value); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x BdeUnionD) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*BdeUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("D"); err != nil {
return err
}
if err := enc.StartValue(vdl.AnyType); err != nil {
return err
}
switch {
case x.Value == nil:
if err := enc.NilValue(vdl.AnyType); err != nil {
return err
}
case x.Value.IsNil():
if err := enc.NilValue(x.Value.Type()); err != nil {
return err
}
default:
if err := x.Value.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x BdeUnionE) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*BdeUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("E"); err != nil {
return err
}
if err := x.Value.VDLWrite(enc); err != nil {
return err
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func VDLReadBdeUnion(dec vdl.Decoder, x *BdeUnion) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(x), dec.Type()) {
return fmt.Errorf("incompatible union %T, from %v", x, dec.Type())
}
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "B":
var field BdeUnionB
if err := dec.StartValue(); err != nil {
return err
}
var err error
if field.Value, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "D":
var field BdeUnionD
field.Value = new(vdl.Value)
if err := field.Value.VDLRead(dec); err != nil {
return err
}
*x = field
case "E":
var field BdeUnionE
if err := dec.StartValue(); err != nil {
return err
}
var err error
if field.Value, err = dec.DecodeTypeObject(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "":
return fmt.Errorf("missing field in union %T, from %v", x, dec.Type())
default:
return fmt.Errorf("field %q not in union %T, from %v", f, x, dec.Type())
}
switch f, err := dec.NextField(); {
case err != nil:
return err
case f != "":
return fmt.Errorf("extra field %q in union %T, from %v", f, x, dec.Type())
}
return dec.FinishValue()
}
type BrieEnum int
const (
BrieEnumGlee BrieEnum = iota
BrieEnumBrie
BrieEnumThree
)
// BrieEnumAll holds all labels for BrieEnum.
var BrieEnumAll = [...]BrieEnum{BrieEnumGlee, BrieEnumBrie, BrieEnumThree}
// BrieEnumFromString creates a BrieEnum from a string label.
func BrieEnumFromString(label string) (x BrieEnum, err error) {
err = x.Set(label)
return
}
// Set assigns label to x.
func (x *BrieEnum) Set(label string) error {
switch label {
case "Glee", "glee":
*x = BrieEnumGlee
return nil
case "Brie", "brie":
*x = BrieEnumBrie
return nil
case "Three", "three":
*x = BrieEnumThree
return nil
}
*x = -1
return fmt.Errorf("unknown label %q in types.BrieEnum", label)
}
// String returns the string label of x.
func (x BrieEnum) String() string {
switch x {
case BrieEnumGlee:
return "Glee"
case BrieEnumBrie:
return "Brie"
case BrieEnumThree:
return "Three"
}
return ""
}
func (BrieEnum) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.BrieEnum"`
Enum struct{ Glee, Brie, Three string }
}) {
}
func (m *BrieEnum) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromEnumLabel((*m).String(), tt); err != nil {
return err
}
return nil
}
func (m *BrieEnum) MakeVDLTarget() vdl.Target {
return &BrieEnumTarget{Value: m}
}
type BrieEnumTarget struct {
Value *BrieEnum
vdl.TargetBase
}
func (t *BrieEnumTarget) FromEnumLabel(src string, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*BrieEnum)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
switch src {
case "Glee":
*t.Value = 0
case "Brie":
*t.Value = 1
case "Three":
*t.Value = 2
default:
return fmt.Errorf("label %s not in enum BrieEnum", src)
}
return nil
}
func (x BrieEnum) VDLIsZero() (bool, error) {
return x == BrieEnumGlee, nil
}
func (x BrieEnum) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*BrieEnum)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.String()); err != nil {
return err
}
return enc.FinishValue()
}
func (x *BrieEnum) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
enum, err := dec.DecodeString()
if err != nil {
return err
}
if err := x.Set(enum); err != nil {
return err
}
return dec.FinishValue()
}
type BeanEnum int
const (
BeanEnumBean BeanEnum = iota
)
// BeanEnumAll holds all labels for BeanEnum.
var BeanEnumAll = [...]BeanEnum{BeanEnumBean}
// BeanEnumFromString creates a BeanEnum from a string label.
func BeanEnumFromString(label string) (x BeanEnum, err error) {
err = x.Set(label)
return
}
// Set assigns label to x.
func (x *BeanEnum) Set(label string) error {
switch label {
case "Bean", "bean":
*x = BeanEnumBean
return nil
}
*x = -1
return fmt.Errorf("unknown label %q in types.BeanEnum", label)
}
// String returns the string label of x.
func (x BeanEnum) String() string {
switch x {
case BeanEnumBean:
return "Bean"
}
return ""
}
func (BeanEnum) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.BeanEnum"`
Enum struct{ Bean string }
}) {
}
func (m *BeanEnum) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromEnumLabel((*m).String(), tt); err != nil {
return err
}
return nil
}
func (m *BeanEnum) MakeVDLTarget() vdl.Target {
return &BeanEnumTarget{Value: m}
}
type BeanEnumTarget struct {
Value *BeanEnum
vdl.TargetBase
}
func (t *BeanEnumTarget) FromEnumLabel(src string, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*BeanEnum)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
switch src {
case "Bean":
*t.Value = 0
default:
return fmt.Errorf("label %s not in enum BeanEnum", src)
}
return nil
}
func (x BeanEnum) VDLIsZero() (bool, error) {
return x == BeanEnumBean, nil
}
func (x BeanEnum) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*BeanEnum)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.String()); err != nil {
return err
}
return enc.FinishValue()
}
func (x *BeanEnum) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
enum, err := dec.DecodeString()
if err != nil {
return err
}
if err := x.Set(enum); err != nil {
return err
}
return dec.FinishValue()
}
type FoodEnum int
const (
FoodEnumBean FoodEnum = iota
FoodEnumBrie
FoodEnumCherry
)
// FoodEnumAll holds all labels for FoodEnum.
var FoodEnumAll = [...]FoodEnum{FoodEnumBean, FoodEnumBrie, FoodEnumCherry}
// FoodEnumFromString creates a FoodEnum from a string label.
func FoodEnumFromString(label string) (x FoodEnum, err error) {
err = x.Set(label)
return
}
// Set assigns label to x.
func (x *FoodEnum) Set(label string) error {
switch label {
case "Bean", "bean":
*x = FoodEnumBean
return nil
case "Brie", "brie":
*x = FoodEnumBrie
return nil
case "Cherry", "cherry":
*x = FoodEnumCherry
return nil
}
*x = -1
return fmt.Errorf("unknown label %q in types.FoodEnum", label)
}
// String returns the string label of x.
func (x FoodEnum) String() string {
switch x {
case FoodEnumBean:
return "Bean"
case FoodEnumBrie:
return "Brie"
case FoodEnumCherry:
return "Cherry"
}
return ""
}
func (FoodEnum) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.FoodEnum"`
Enum struct{ Bean, Brie, Cherry string }
}) {
}
func (m *FoodEnum) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromEnumLabel((*m).String(), tt); err != nil {
return err
}
return nil
}
func (m *FoodEnum) MakeVDLTarget() vdl.Target {
return &FoodEnumTarget{Value: m}
}
type FoodEnumTarget struct {
Value *FoodEnum
vdl.TargetBase
}
func (t *FoodEnumTarget) FromEnumLabel(src string, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*FoodEnum)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
switch src {
case "Bean":
*t.Value = 0
case "Brie":
*t.Value = 1
case "Cherry":
*t.Value = 2
default:
return fmt.Errorf("label %s not in enum FoodEnum", src)
}
return nil
}
func (x FoodEnum) VDLIsZero() (bool, error) {
return x == FoodEnumBean, nil
}
func (x FoodEnum) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*FoodEnum)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.String()); err != nil {
return err
}
return enc.FinishValue()
}
func (x *FoodEnum) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
enum, err := dec.DecodeString()
if err != nil {
return err
}
if err := x.Set(enum); err != nil {
return err
}
return dec.FinishValue()
}
type StructAny struct {
Any *vdl.Value
}
func (StructAny) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.StructAny"`
}) {
}
func (m *StructAny) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := m.Any == nil || (m.Any.Kind() == vdl.Any && m.Any.IsZero())
if var4 {
if err := fieldsTarget1.ZeroField("Any"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Any")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := vdl.FromValue(fieldTarget3, m.Any); 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 *StructAny) MakeVDLTarget() vdl.Target {
return &StructAnyTarget{Value: m}
}
type StructAnyTarget struct {
Value *StructAny
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *StructAnyTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*StructAny)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *StructAnyTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Any":
target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Any))
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.StructAny", name)
}
}
func (t *StructAnyTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *StructAnyTarget) ZeroField(name string) error {
switch name {
case "Any":
t.Value.Any = vdl.ZeroValue(vdl.AnyType)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.StructAny", name)
}
}
func (t *StructAnyTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x StructAny) VDLIsZero() (bool, error) {
var isZeroAny bool
if x.Any != nil {
var err error
if isZeroAny, err = x.Any.VDLIsZero(); err != nil {
return false, err
}
}
if x.Any != nil && !isZeroAny {
return false, nil
}
return true, nil
}
func (x StructAny) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*StructAny)(nil)).Elem()); err != nil {
return err
}
var isZeroAny bool
if x.Any != nil {
var err error
if isZeroAny, err = x.Any.VDLIsZero(); err != nil {
return err
}
}
if x.Any != nil && !isZeroAny {
if err := enc.NextField("Any"); err != nil {
return err
}
if err := enc.StartValue(vdl.AnyType); err != nil {
return err
}
switch {
case x.Any.IsNil():
if err := enc.NilValue(x.Any.Type()); err != nil {
return err
}
default:
if err := x.Any.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *StructAny) VDLRead(dec vdl.Decoder) error {
*x = StructAny{
Any: vdl.ZeroValue(vdl.AnyType),
}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Any":
x.Any = new(vdl.Value)
if err := x.Any.VDLRead(dec); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type StructMap struct {
Map map[int64]int64
}
func (StructMap) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.StructMap"`
}) {
}
func (m *StructMap) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var var4 bool
if len(m.Map) == 0 {
var4 = true
}
if var4 {
if err := fieldsTarget1.ZeroField("Map"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Map")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
mapTarget5, err := fieldTarget3.StartMap(tt.NonOptional().Field(0).Type, len(m.Map))
if err != nil {
return err
}
for key7, value9 := range m.Map {
keyTarget6, err := mapTarget5.StartKey()
if err != nil {
return err
}
if err := keyTarget6.FromInt(int64(key7), tt.NonOptional().Field(0).Type.Key()); err != nil {
return err
}
valueTarget8, err := mapTarget5.FinishKeyStartField(keyTarget6)
if err != nil {
return err
}
if err := valueTarget8.FromInt(int64(value9), tt.NonOptional().Field(0).Type.Elem()); err != nil {
return err
}
if err := mapTarget5.FinishField(keyTarget6, valueTarget8); err != nil {
return err
}
}
if err := fieldTarget3.FinishMap(mapTarget5); 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 *StructMap) MakeVDLTarget() vdl.Target {
return &StructMapTarget{Value: m}
}
type StructMapTarget struct {
Value *StructMap
mapTarget __VDLTarget12_map
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *StructMapTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*StructMap)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *StructMapTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Map":
t.mapTarget.Value = &t.Value.Map
target, err := &t.mapTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.StructMap", name)
}
}
func (t *StructMapTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *StructMapTarget) ZeroField(name string) error {
switch name {
case "Map":
t.Value.Map = map[int64]int64(nil)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.StructMap", name)
}
}
func (t *StructMapTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// map[int64]int64
type __VDLTarget12_map struct {
Value *map[int64]int64
currKey int64
currElem int64
keyTarget vdl.Int64Target
elemTarget vdl.Int64Target
vdl.TargetBase
vdl.MapTargetBase
}
func (t *__VDLTarget12_map) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*map[int64]int64)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(map[int64]int64)
return t, nil
}
func (t *__VDLTarget12_map) StartKey() (key vdl.Target, _ error) {
t.currKey = int64(0)
t.keyTarget.Value = &t.currKey
target, err := &t.keyTarget, error(nil)
return target, err
}
func (t *__VDLTarget12_map) FinishKeyStartField(key vdl.Target) (field vdl.Target, _ error) {
t.currElem = int64(0)
t.elemTarget.Value = &t.currElem
target, err := &t.elemTarget, error(nil)
return target, err
}
func (t *__VDLTarget12_map) FinishField(key, field vdl.Target) error {
(*t.Value)[t.currKey] = t.currElem
return nil
}
func (t *__VDLTarget12_map) FinishMap(elem vdl.MapTarget) error {
if len(*t.Value) == 0 {
*t.Value = nil
}
return nil
}
func (x StructMap) VDLIsZero() (bool, error) {
if len(x.Map) != 0 {
return false, nil
}
return true, nil
}
func (x StructMap) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*StructMap)(nil)).Elem()); err != nil {
return err
}
if len(x.Map) != 0 {
if err := enc.NextField("Map"); err != nil {
return err
}
if err := __VDLWriteAnon_map_10(enc, x.Map); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_map_10(enc vdl.Encoder, x map[int64]int64) error {
if err := enc.StartValue(vdl.TypeOf((*map[int64]int64)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for key, elem := range x {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int64)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(key); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int64)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(elem); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *StructMap) VDLRead(dec vdl.Decoder) error {
*x = StructMap{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Map":
if err := __VDLReadAnon_map_10(dec, &x.Map); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
func __VDLReadAnon_map_10(dec vdl.Decoder, x *map[int64]int64) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible map %T, from %v", *x, dec.Type())
}
var tmpMap map[int64]int64
if len := dec.LenHint(); len > 0 {
tmpMap = make(map[int64]int64, len)
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
*x = tmpMap
return dec.FinishValue()
}
var key int64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if key, err = dec.DecodeInt(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
var elem int64
{
if err := dec.StartValue(); err != nil {
return err
}
var err error
if elem, err = dec.DecodeInt(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
}
if tmpMap == nil {
tmpMap = make(map[int64]int64)
}
tmpMap[key] = elem
}
}
// Since the encoding changes if struct fields are zero values,
// test each of the kinds in a struct both as zero and non-zero values.
type StructManyTypes struct {
Bool bool
AByte byte
Int16 int16
Int32 int32
Int64 int64
Uint16 uint16
Uint32 uint32
Uint64 uint64
String string
Bytes []byte
Float32 float32
Float64 float64
FoodEnum FoodEnum
NEnum NEnum
NListUint64 NListUint64
NByteArray NByteArray
NArray2Uint64 NArray2Uint64
NSetUint64 NSetUint64
NMapUint64String NMapUint64String
NStruct NStruct
NUnion NUnion
TypeObject *vdl.Type
}
func (StructManyTypes) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.StructManyTypes"`
}) {
}
func (m *StructManyTypes) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.Bool == false)
if var4 {
if err := fieldsTarget1.ZeroField("Bool"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Bool")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromBool(bool(m.Bool), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.AByte == byte(0))
if var7 {
if err := fieldsTarget1.ZeroField("AByte"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("AByte")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget6.FromUint(uint64(m.AByte), tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.Int16 == int16(0))
if var10 {
if err := fieldsTarget1.ZeroField("Int16"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("Int16")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget9.FromInt(int64(m.Int16), tt.NonOptional().Field(2).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
var13 := (m.Int32 == int32(0))
if var13 {
if err := fieldsTarget1.ZeroField("Int32"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget11, fieldTarget12, err := fieldsTarget1.StartField("Int32")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget12.FromInt(int64(m.Int32), tt.NonOptional().Field(3).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget11, fieldTarget12); err != nil {
return err
}
}
}
var16 := (m.Int64 == int64(0))
if var16 {
if err := fieldsTarget1.ZeroField("Int64"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget14, fieldTarget15, err := fieldsTarget1.StartField("Int64")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget15.FromInt(int64(m.Int64), tt.NonOptional().Field(4).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget14, fieldTarget15); err != nil {
return err
}
}
}
var19 := (m.Uint16 == uint16(0))
if var19 {
if err := fieldsTarget1.ZeroField("Uint16"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget17, fieldTarget18, err := fieldsTarget1.StartField("Uint16")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget18.FromUint(uint64(m.Uint16), tt.NonOptional().Field(5).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget17, fieldTarget18); err != nil {
return err
}
}
}
var22 := (m.Uint32 == uint32(0))
if var22 {
if err := fieldsTarget1.ZeroField("Uint32"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget20, fieldTarget21, err := fieldsTarget1.StartField("Uint32")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget21.FromUint(uint64(m.Uint32), tt.NonOptional().Field(6).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget20, fieldTarget21); err != nil {
return err
}
}
}
var25 := (m.Uint64 == uint64(0))
if var25 {
if err := fieldsTarget1.ZeroField("Uint64"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget23, fieldTarget24, err := fieldsTarget1.StartField("Uint64")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget24.FromUint(uint64(m.Uint64), tt.NonOptional().Field(7).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget23, fieldTarget24); err != nil {
return err
}
}
}
var28 := (m.String == "")
if var28 {
if err := fieldsTarget1.ZeroField("String"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget26, fieldTarget27, err := fieldsTarget1.StartField("String")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget27.FromString(string(m.String), tt.NonOptional().Field(8).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget26, fieldTarget27); err != nil {
return err
}
}
}
var var31 bool
if len(m.Bytes) == 0 {
var31 = true
}
if var31 {
if err := fieldsTarget1.ZeroField("Bytes"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget29, fieldTarget30, err := fieldsTarget1.StartField("Bytes")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget30.FromBytes([]byte(m.Bytes), tt.NonOptional().Field(9).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget29, fieldTarget30); err != nil {
return err
}
}
}
var34 := (m.Float32 == float32(0))
if var34 {
if err := fieldsTarget1.ZeroField("Float32"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget32, fieldTarget33, err := fieldsTarget1.StartField("Float32")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget33.FromFloat(float64(m.Float32), tt.NonOptional().Field(10).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget32, fieldTarget33); err != nil {
return err
}
}
}
var37 := (m.Float64 == float64(0))
if var37 {
if err := fieldsTarget1.ZeroField("Float64"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget35, fieldTarget36, err := fieldsTarget1.StartField("Float64")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget36.FromFloat(float64(m.Float64), tt.NonOptional().Field(11).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget35, fieldTarget36); err != nil {
return err
}
}
}
var40 := (m.FoodEnum == FoodEnumBean)
if var40 {
if err := fieldsTarget1.ZeroField("FoodEnum"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget38, fieldTarget39, err := fieldsTarget1.StartField("FoodEnum")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.FoodEnum.FillVDLTarget(fieldTarget39, tt.NonOptional().Field(12).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget38, fieldTarget39); err != nil {
return err
}
}
}
var43 := (m.NEnum == NEnumA)
if var43 {
if err := fieldsTarget1.ZeroField("NEnum"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget41, fieldTarget42, err := fieldsTarget1.StartField("NEnum")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.NEnum.FillVDLTarget(fieldTarget42, tt.NonOptional().Field(13).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget41, fieldTarget42); err != nil {
return err
}
}
}
var var46 bool
if len(m.NListUint64) == 0 {
var46 = true
}
if var46 {
if err := fieldsTarget1.ZeroField("NListUint64"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget44, fieldTarget45, err := fieldsTarget1.StartField("NListUint64")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.NListUint64.FillVDLTarget(fieldTarget45, tt.NonOptional().Field(14).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget44, fieldTarget45); err != nil {
return err
}
}
}
var49 := (m.NByteArray == NByteArray{})
if var49 {
if err := fieldsTarget1.ZeroField("NByteArray"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget47, fieldTarget48, err := fieldsTarget1.StartField("NByteArray")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.NByteArray.FillVDLTarget(fieldTarget48, tt.NonOptional().Field(15).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget47, fieldTarget48); err != nil {
return err
}
}
}
var52 := (m.NArray2Uint64 == NArray2Uint64{})
if var52 {
if err := fieldsTarget1.ZeroField("NArray2Uint64"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget50, fieldTarget51, err := fieldsTarget1.StartField("NArray2Uint64")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.NArray2Uint64.FillVDLTarget(fieldTarget51, tt.NonOptional().Field(16).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget50, fieldTarget51); err != nil {
return err
}
}
}
var var55 bool
if len(m.NSetUint64) == 0 {
var55 = true
}
if var55 {
if err := fieldsTarget1.ZeroField("NSetUint64"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget53, fieldTarget54, err := fieldsTarget1.StartField("NSetUint64")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.NSetUint64.FillVDLTarget(fieldTarget54, tt.NonOptional().Field(17).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget53, fieldTarget54); err != nil {
return err
}
}
}
var var58 bool
if len(m.NMapUint64String) == 0 {
var58 = true
}
if var58 {
if err := fieldsTarget1.ZeroField("NMapUint64String"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget56, fieldTarget57, err := fieldsTarget1.StartField("NMapUint64String")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.NMapUint64String.FillVDLTarget(fieldTarget57, tt.NonOptional().Field(18).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget56, fieldTarget57); err != nil {
return err
}
}
}
var61 := (m.NStruct == NStruct{})
if var61 {
if err := fieldsTarget1.ZeroField("NStruct"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget59, fieldTarget60, err := fieldsTarget1.StartField("NStruct")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.NStruct.FillVDLTarget(fieldTarget60, tt.NonOptional().Field(19).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget59, fieldTarget60); err != nil {
return err
}
}
}
var var64 bool
if field, ok := m.NUnion.(NUnionA); ok {
var65 := (field.Value == false)
var64 = var65
}
if var64 {
if err := fieldsTarget1.ZeroField("NUnion"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget62, fieldTarget63, err := fieldsTarget1.StartField("NUnion")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
unionValue66 := m.NUnion
if unionValue66 == nil {
unionValue66 = NUnionA{}
}
if err := unionValue66.FillVDLTarget(fieldTarget63, tt.NonOptional().Field(20).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget62, fieldTarget63); err != nil {
return err
}
}
}
var69 := (m.TypeObject == nil || m.TypeObject == vdl.AnyType)
if var69 {
if err := fieldsTarget1.ZeroField("TypeObject"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget67, fieldTarget68, err := fieldsTarget1.StartField("TypeObject")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
typeObjectVal70 := m.TypeObject
if typeObjectVal70 == nil {
typeObjectVal70 = vdl.AnyType
}
if err := fieldTarget68.FromTypeObject(typeObjectVal70); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget67, fieldTarget68); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *StructManyTypes) MakeVDLTarget() vdl.Target {
return &StructManyTypesTarget{Value: m}
}
type StructManyTypesTarget struct {
Value *StructManyTypes
boolTarget vdl.BoolTarget
aByteTarget vdl.ByteTarget
int16Target vdl.Int16Target
int32Target vdl.Int32Target
int64Target vdl.Int64Target
uint16Target vdl.Uint16Target
uint32Target vdl.Uint32Target
uint64Target vdl.Uint64Target
stringTarget vdl.StringTarget
bytesTarget vdl.BytesTarget
float32Target vdl.Float32Target
float64Target vdl.Float64Target
foodEnumTarget FoodEnumTarget
nEnumTarget NEnumTarget
nListUint64Target NListUint64Target
nByteArrayTarget NByteArrayTarget
nArray2Uint64Target NArray2Uint64Target
nSetUint64Target NSetUint64Target
nMapUint64StringTarget NMapUint64StringTarget
nStructTarget NStructTarget
nUnionTarget NUnionTarget
typeObjectTarget vdl.TypeObjectTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *StructManyTypesTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*StructManyTypes)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *StructManyTypesTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Bool":
t.boolTarget.Value = &t.Value.Bool
target, err := &t.boolTarget, error(nil)
return nil, target, err
case "AByte":
t.aByteTarget.Value = &t.Value.AByte
target, err := &t.aByteTarget, error(nil)
return nil, target, err
case "Int16":
t.int16Target.Value = &t.Value.Int16
target, err := &t.int16Target, error(nil)
return nil, target, err
case "Int32":
t.int32Target.Value = &t.Value.Int32
target, err := &t.int32Target, error(nil)
return nil, target, err
case "Int64":
t.int64Target.Value = &t.Value.Int64
target, err := &t.int64Target, error(nil)
return nil, target, err
case "Uint16":
t.uint16Target.Value = &t.Value.Uint16
target, err := &t.uint16Target, error(nil)
return nil, target, err
case "Uint32":
t.uint32Target.Value = &t.Value.Uint32
target, err := &t.uint32Target, error(nil)
return nil, target, err
case "Uint64":
t.uint64Target.Value = &t.Value.Uint64
target, err := &t.uint64Target, error(nil)
return nil, target, err
case "String":
t.stringTarget.Value = &t.Value.String
target, err := &t.stringTarget, error(nil)
return nil, target, err
case "Bytes":
t.bytesTarget.Value = &t.Value.Bytes
target, err := &t.bytesTarget, error(nil)
return nil, target, err
case "Float32":
t.float32Target.Value = &t.Value.Float32
target, err := &t.float32Target, error(nil)
return nil, target, err
case "Float64":
t.float64Target.Value = &t.Value.Float64
target, err := &t.float64Target, error(nil)
return nil, target, err
case "FoodEnum":
t.foodEnumTarget.Value = &t.Value.FoodEnum
target, err := &t.foodEnumTarget, error(nil)
return nil, target, err
case "NEnum":
t.nEnumTarget.Value = &t.Value.NEnum
target, err := &t.nEnumTarget, error(nil)
return nil, target, err
case "NListUint64":
t.nListUint64Target.Value = &t.Value.NListUint64
target, err := &t.nListUint64Target, error(nil)
return nil, target, err
case "NByteArray":
t.nByteArrayTarget.Value = &t.Value.NByteArray
target, err := &t.nByteArrayTarget, error(nil)
return nil, target, err
case "NArray2Uint64":
t.nArray2Uint64Target.Value = &t.Value.NArray2Uint64
target, err := &t.nArray2Uint64Target, error(nil)
return nil, target, err
case "NSetUint64":
t.nSetUint64Target.Value = &t.Value.NSetUint64
target, err := &t.nSetUint64Target, error(nil)
return nil, target, err
case "NMapUint64String":
t.nMapUint64StringTarget.Value = &t.Value.NMapUint64String
target, err := &t.nMapUint64StringTarget, error(nil)
return nil, target, err
case "NStruct":
t.nStructTarget.Value = &t.Value.NStruct
target, err := &t.nStructTarget, error(nil)
return nil, target, err
case "NUnion":
t.nUnionTarget.Value = &t.Value.NUnion
target, err := &t.nUnionTarget, error(nil)
return nil, target, err
case "TypeObject":
t.typeObjectTarget.Value = &t.Value.TypeObject
target, err := &t.typeObjectTarget, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.StructManyTypes", name)
}
}
func (t *StructManyTypesTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *StructManyTypesTarget) ZeroField(name string) error {
switch name {
case "Bool":
t.Value.Bool = false
return nil
case "AByte":
t.Value.AByte = byte(0)
return nil
case "Int16":
t.Value.Int16 = int16(0)
return nil
case "Int32":
t.Value.Int32 = int32(0)
return nil
case "Int64":
t.Value.Int64 = int64(0)
return nil
case "Uint16":
t.Value.Uint16 = uint16(0)
return nil
case "Uint32":
t.Value.Uint32 = uint32(0)
return nil
case "Uint64":
t.Value.Uint64 = uint64(0)
return nil
case "String":
t.Value.String = ""
return nil
case "Bytes":
t.Value.Bytes = []byte(nil)
return nil
case "Float32":
t.Value.Float32 = float32(0)
return nil
case "Float64":
t.Value.Float64 = float64(0)
return nil
case "FoodEnum":
t.Value.FoodEnum = FoodEnumBean
return nil
case "NEnum":
t.Value.NEnum = NEnumA
return nil
case "NListUint64":
t.Value.NListUint64 = NListUint64(nil)
return nil
case "NByteArray":
t.Value.NByteArray = NByteArray{}
return nil
case "NArray2Uint64":
t.Value.NArray2Uint64 = NArray2Uint64{}
return nil
case "NSetUint64":
t.Value.NSetUint64 = NSetUint64(nil)
return nil
case "NMapUint64String":
t.Value.NMapUint64String = NMapUint64String(nil)
return nil
case "NStruct":
t.Value.NStruct = NStruct{}
return nil
case "NUnion":
t.Value.NUnion = NUnion(NUnionA{})
return nil
case "TypeObject":
t.Value.TypeObject = vdl.AnyType
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.StructManyTypes", name)
}
}
func (t *StructManyTypesTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x StructManyTypes) VDLIsZero() (bool, error) {
if x.Bool {
return false, nil
}
if x.AByte != 0 {
return false, nil
}
if x.Int16 != 0 {
return false, nil
}
if x.Int32 != 0 {
return false, nil
}
if x.Int64 != 0 {
return false, nil
}
if x.Uint16 != 0 {
return false, nil
}
if x.Uint32 != 0 {
return false, nil
}
if x.Uint64 != 0 {
return false, nil
}
if x.String != "" {
return false, nil
}
if len(x.Bytes) != 0 {
return false, nil
}
if x.Float32 != 0 {
return false, nil
}
if x.Float64 != 0 {
return false, nil
}
if x.FoodEnum != FoodEnumBean {
return false, nil
}
if x.NEnum != NEnumA {
return false, nil
}
if len(x.NListUint64) != 0 {
return false, nil
}
if x.NByteArray != (NByteArray{}) {
return false, nil
}
if x.NArray2Uint64 != (NArray2Uint64{}) {
return false, nil
}
if len(x.NSetUint64) != 0 {
return false, nil
}
if len(x.NMapUint64String) != 0 {
return false, nil
}
if x.NStruct != (NStruct{}) {
return false, nil
}
var isZeroNUnion bool
if x.NUnion != nil {
var err error
if isZeroNUnion, err = x.NUnion.VDLIsZero(); err != nil {
return false, err
}
}
if x.NUnion != nil && !isZeroNUnion {
return false, nil
}
if x.TypeObject != nil && x.TypeObject != vdl.AnyType {
return false, nil
}
return true, nil
}
func (x StructManyTypes) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*StructManyTypes)(nil)).Elem()); err != nil {
return err
}
if x.Bool {
if err := enc.NextField("Bool"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*bool)(nil))); err != nil {
return err
}
if err := enc.EncodeBool(x.Bool); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.AByte != 0 {
if err := enc.NextField("AByte"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*byte)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(x.AByte)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Int16 != 0 {
if err := enc.NextField("Int16"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int16)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.Int16)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Int32 != 0 {
if err := enc.NextField("Int32"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int32)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.Int32)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Int64 != 0 {
if err := enc.NextField("Int64"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*int64)(nil))); err != nil {
return err
}
if err := enc.EncodeInt(x.Int64); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Uint16 != 0 {
if err := enc.NextField("Uint16"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint16)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(x.Uint16)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Uint32 != 0 {
if err := enc.NextField("Uint32"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint32)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(uint64(x.Uint32)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Uint64 != 0 {
if err := enc.NextField("Uint64"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*uint64)(nil))); err != nil {
return err
}
if err := enc.EncodeUint(x.Uint64); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.String != "" {
if err := enc.NextField("String"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*string)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.String); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if len(x.Bytes) != 0 {
if err := enc.NextField("Bytes"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*[]byte)(nil))); err != nil {
return err
}
if err := enc.EncodeBytes(x.Bytes); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Float32 != 0 {
if err := enc.NextField("Float32"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*float32)(nil))); err != nil {
return err
}
if err := enc.EncodeFloat(float64(x.Float32)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Float64 != 0 {
if err := enc.NextField("Float64"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*float64)(nil))); err != nil {
return err
}
if err := enc.EncodeFloat(x.Float64); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.FoodEnum != FoodEnumBean {
if err := enc.NextField("FoodEnum"); err != nil {
return err
}
if err := x.FoodEnum.VDLWrite(enc); err != nil {
return err
}
}
if x.NEnum != NEnumA {
if err := enc.NextField("NEnum"); err != nil {
return err
}
if err := x.NEnum.VDLWrite(enc); err != nil {
return err
}
}
if len(x.NListUint64) != 0 {
if err := enc.NextField("NListUint64"); err != nil {
return err
}
if err := x.NListUint64.VDLWrite(enc); err != nil {
return err
}
}
if x.NByteArray != (NByteArray{}) {
if err := enc.NextField("NByteArray"); err != nil {
return err
}
if err := x.NByteArray.VDLWrite(enc); err != nil {
return err
}
}
if x.NArray2Uint64 != (NArray2Uint64{}) {
if err := enc.NextField("NArray2Uint64"); err != nil {
return err
}
if err := x.NArray2Uint64.VDLWrite(enc); err != nil {
return err
}
}
if len(x.NSetUint64) != 0 {
if err := enc.NextField("NSetUint64"); err != nil {
return err
}
if err := x.NSetUint64.VDLWrite(enc); err != nil {
return err
}
}
if len(x.NMapUint64String) != 0 {
if err := enc.NextField("NMapUint64String"); err != nil {
return err
}
if err := x.NMapUint64String.VDLWrite(enc); err != nil {
return err
}
}
if x.NStruct != (NStruct{}) {
if err := enc.NextField("NStruct"); err != nil {
return err
}
if err := x.NStruct.VDLWrite(enc); err != nil {
return err
}
}
var isZeroNUnion bool
if x.NUnion != nil {
var err error
if isZeroNUnion, err = x.NUnion.VDLIsZero(); err != nil {
return err
}
}
if x.NUnion != nil && !isZeroNUnion {
if err := enc.NextField("NUnion"); err != nil {
return err
}
if err := x.NUnion.VDLWrite(enc); err != nil {
return err
}
}
if x.TypeObject != nil && x.TypeObject != vdl.AnyType {
if err := enc.NextField("TypeObject"); err != nil {
return err
}
if err := x.TypeObject.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *StructManyTypes) VDLRead(dec vdl.Decoder) error {
*x = StructManyTypes{
NUnion: NUnionA{},
TypeObject: vdl.AnyType,
}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Bool":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Bool, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "AByte":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(8)
if err != nil {
return err
}
x.AByte = byte(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "Int16":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(16)
if err != nil {
return err
}
x.Int16 = int16(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "Int32":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(32)
if err != nil {
return err
}
x.Int32 = int32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "Int64":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Int64, err = dec.DecodeInt(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Uint16":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(16)
if err != nil {
return err
}
x.Uint16 = uint16(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "Uint32":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(32)
if err != nil {
return err
}
x.Uint32 = uint32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "Uint64":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Uint64, err = dec.DecodeUint(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "String":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.String, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Bytes":
if err := dec.StartValue(); err != nil {
return err
}
if err := dec.DecodeBytes(-1, &x.Bytes); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Float32":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeFloat(32)
if err != nil {
return err
}
x.Float32 = float32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "Float64":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.Float64, err = dec.DecodeFloat(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "FoodEnum":
if err := x.FoodEnum.VDLRead(dec); err != nil {
return err
}
case "NEnum":
if err := x.NEnum.VDLRead(dec); err != nil {
return err
}
case "NListUint64":
if err := x.NListUint64.VDLRead(dec); err != nil {
return err
}
case "NByteArray":
if err := x.NByteArray.VDLRead(dec); err != nil {
return err
}
case "NArray2Uint64":
if err := x.NArray2Uint64.VDLRead(dec); err != nil {
return err
}
case "NSetUint64":
if err := x.NSetUint64.VDLRead(dec); err != nil {
return err
}
case "NMapUint64String":
if err := x.NMapUint64String.VDLRead(dec); err != nil {
return err
}
case "NStruct":
if err := x.NStruct.VDLRead(dec); err != nil {
return err
}
case "NUnion":
if err := VDLReadNUnion(dec, &x.NUnion); err != nil {
return err
}
case "TypeObject":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.TypeObject, err = dec.DecodeTypeObject(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type AnySlice []*vdl.Value
func (AnySlice) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.AnySlice"`
}) {
}
func (m *AnySlice) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
listTarget1, err := t.StartList(tt, len((*m)))
if err != nil {
return err
}
for i, elem3 := range *m {
elemTarget2, err := listTarget1.StartElem(i)
if err != nil {
return err
}
if err := vdl.FromValue(elemTarget2, elem3); err != nil {
return err
}
if err := listTarget1.FinishElem(elemTarget2); err != nil {
return err
}
}
if err := t.FinishList(listTarget1); err != nil {
return err
}
return nil
}
func (m *AnySlice) MakeVDLTarget() vdl.Target {
return &AnySliceTarget{Value: m}
}
// AnySlice
type AnySliceTarget struct {
Value *AnySlice
vdl.TargetBase
vdl.ListTargetBase
}
func (t *AnySliceTarget) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*AnySlice)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make(AnySlice, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *AnySliceTarget) StartElem(index int) (elem vdl.Target, _ error) {
target, err := vdl.ReflectTarget(reflect.ValueOf(&(*t.Value)[index]))
return target, err
}
func (t *AnySliceTarget) FinishElem(elem vdl.Target) error {
return nil
}
func (t *AnySliceTarget) FinishList(elem vdl.ListTarget) error {
return nil
}
func (x AnySlice) VDLIsZero() (bool, error) {
return len(x) == 0, nil
}
func (x AnySlice) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*AnySlice)(nil))); err != nil {
return err
}
if err := enc.SetLenHint(len(x)); err != nil {
return err
}
for i := 0; i < len(x); i++ {
if err := enc.NextEntry(false); err != nil {
return err
}
if err := enc.StartValue(vdl.AnyType); err != nil {
return err
}
switch {
case x[i] == nil:
if err := enc.NilValue(vdl.AnyType); err != nil {
return err
}
case x[i].IsNil():
if err := enc.NilValue(x[i].Type()); err != nil {
return err
}
default:
if err := x[i].VDLWrite(enc); err != nil {
return err
}
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if err := enc.NextEntry(true); err != nil {
return err
}
return enc.FinishValue()
}
func (x *AnySlice) VDLRead(dec vdl.Decoder) error {
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible list %T, from %v", *x, dec.Type())
}
switch len := dec.LenHint(); {
case len > 0:
*x = make(AnySlice, 0, len)
default:
*x = nil
}
for {
switch done, err := dec.NextEntry(); {
case err != nil:
return err
case done:
return dec.FinishValue()
}
var elem *vdl.Value
elem = new(vdl.Value)
if err := elem.VDLRead(dec); err != nil {
return err
}
*x = append(*x, elem)
}
}
type LargeMessageType struct {
Payload []byte
Next *LargeMessageType
}
func (LargeMessageType) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.LargeMessageType"`
}) {
}
func (m *LargeMessageType) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var var4 bool
if len(m.Payload) == 0 {
var4 = true
}
if var4 {
if err := fieldsTarget1.ZeroField("Payload"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Payload")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromBytes([]byte(m.Payload), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.Next == (*LargeMessageType)(nil))
if var7 {
if err := fieldsTarget1.ZeroField("Next"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("Next")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.Next.FillVDLTarget(fieldTarget6, tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *LargeMessageType) MakeVDLTarget() vdl.Target {
return &LargeMessageTypeTarget{Value: m}
}
type LargeMessageTypeTarget struct {
Value *LargeMessageType
payloadTarget vdl.BytesTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *LargeMessageTypeTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*LargeMessageType)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *LargeMessageTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Payload":
t.payloadTarget.Value = &t.Value.Payload
target, err := &t.payloadTarget, error(nil)
return nil, target, err
case "Next":
target, err := &__VDLTarget13_optional{Value: &t.Value.Next}, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.LargeMessageType", name)
}
}
func (t *LargeMessageTypeTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *LargeMessageTypeTarget) ZeroField(name string) error {
switch name {
case "Payload":
t.Value.Payload = []byte(nil)
return nil
case "Next":
t.Value.Next = (*LargeMessageType)(nil)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.LargeMessageType", name)
}
}
func (t *LargeMessageTypeTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// Optional LargeMessageType
type __VDLTarget13_optional struct {
Value **LargeMessageType
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *__VDLTarget13_optional) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if *t.Value == nil {
*t.Value = &LargeMessageType{}
}
target, err := &LargeMessageTypeTarget{Value: *t.Value}, error(nil)
if err != nil {
return nil, err
}
return target.StartFields(tt)
}
func (t *__VDLTarget13_optional) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (t *__VDLTarget13_optional) FromNil(tt *vdl.Type) error {
*t.Value = (*LargeMessageType)(nil)
return nil
}
func (x LargeMessageType) VDLIsZero() (bool, error) {
if len(x.Payload) != 0 {
return false, nil
}
if x.Next != nil {
return false, nil
}
return true, nil
}
func (x LargeMessageType) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*LargeMessageType)(nil)).Elem()); err != nil {
return err
}
if len(x.Payload) != 0 {
if err := enc.NextField("Payload"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((*[]byte)(nil))); err != nil {
return err
}
if err := enc.EncodeBytes(x.Payload); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Next != nil {
if err := enc.NextField("Next"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((**LargeMessageType)(nil))); err != nil {
return err
}
enc.SetNextStartValueIsOptional()
if err := (*x.Next).VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *LargeMessageType) VDLRead(dec vdl.Decoder) error {
*x = LargeMessageType{}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Payload":
if err := dec.StartValue(); err != nil {
return err
}
if err := dec.DecodeBytes(-1, &x.Payload); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "Next":
if err := dec.StartValue(); err != nil {
return err
}
if dec.IsNil() {
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(x.Next), dec.Type()) {
return fmt.Errorf("incompatible optional %T, from %v", x.Next, dec.Type())
}
x.Next = nil
if err := dec.FinishValue(); err != nil {
return err
}
} else {
x.Next = new(LargeMessageType)
dec.IgnoreNextStartValue()
if err := x.Next.VDLRead(dec); err != nil {
return err
}
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type LargeAnyMessageType struct {
Payload *vdl.Value
Next *LargeAnyMessageType
}
func (LargeAnyMessageType) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vom/testdata/types.LargeAnyMessageType"`
}) {
}
func (m *LargeAnyMessageType) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := m.Payload == nil || (m.Payload.Kind() == vdl.Any && m.Payload.IsZero())
if var4 {
if err := fieldsTarget1.ZeroField("Payload"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Payload")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := vdl.FromValue(fieldTarget3, m.Payload); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.Next == (*LargeAnyMessageType)(nil))
if var7 {
if err := fieldsTarget1.ZeroField("Next"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("Next")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.Next.FillVDLTarget(fieldTarget6, tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *LargeAnyMessageType) MakeVDLTarget() vdl.Target {
return &LargeAnyMessageTypeTarget{Value: m}
}
type LargeAnyMessageTypeTarget struct {
Value *LargeAnyMessageType
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *LargeAnyMessageTypeTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*LargeAnyMessageType)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *LargeAnyMessageTypeTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Payload":
target, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Payload))
return nil, target, err
case "Next":
target, err := &__VDLTarget14_optional{Value: &t.Value.Next}, error(nil)
return nil, target, err
default:
return nil, nil, fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.LargeAnyMessageType", name)
}
}
func (t *LargeAnyMessageTypeTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *LargeAnyMessageTypeTarget) ZeroField(name string) error {
switch name {
case "Payload":
t.Value.Payload = vdl.ZeroValue(vdl.AnyType)
return nil
case "Next":
t.Value.Next = (*LargeAnyMessageType)(nil)
return nil
default:
return fmt.Errorf("field %s not in struct v.io/v23/vom/testdata/types.LargeAnyMessageType", name)
}
}
func (t *LargeAnyMessageTypeTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
// Optional LargeAnyMessageType
type __VDLTarget14_optional struct {
Value **LargeAnyMessageType
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *__VDLTarget14_optional) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if *t.Value == nil {
*t.Value = &LargeAnyMessageType{
Payload: vdl.ZeroValue(vdl.AnyType),
}
}
target, err := &LargeAnyMessageTypeTarget{Value: *t.Value}, error(nil)
if err != nil {
return nil, err
}
return target.StartFields(tt)
}
func (t *__VDLTarget14_optional) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (t *__VDLTarget14_optional) FromNil(tt *vdl.Type) error {
*t.Value = (*LargeAnyMessageType)(nil)
return nil
}
func (x LargeAnyMessageType) VDLIsZero() (bool, error) {
var isZeroPayload bool
if x.Payload != nil {
var err error
if isZeroPayload, err = x.Payload.VDLIsZero(); err != nil {
return false, err
}
}
if x.Payload != nil && !isZeroPayload {
return false, nil
}
if x.Next != nil {
return false, nil
}
return true, nil
}
func (x LargeAnyMessageType) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*LargeAnyMessageType)(nil)).Elem()); err != nil {
return err
}
var isZeroPayload bool
if x.Payload != nil {
var err error
if isZeroPayload, err = x.Payload.VDLIsZero(); err != nil {
return err
}
}
if x.Payload != nil && !isZeroPayload {
if err := enc.NextField("Payload"); err != nil {
return err
}
if err := enc.StartValue(vdl.AnyType); err != nil {
return err
}
switch {
case x.Payload.IsNil():
if err := enc.NilValue(x.Payload.Type()); err != nil {
return err
}
default:
if err := x.Payload.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Next != nil {
if err := enc.NextField("Next"); err != nil {
return err
}
if err := enc.StartValue(vdl.TypeOf((**LargeAnyMessageType)(nil))); err != nil {
return err
}
enc.SetNextStartValueIsOptional()
if err := (*x.Next).VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *LargeAnyMessageType) VDLRead(dec vdl.Decoder) error {
*x = LargeAnyMessageType{
Payload: vdl.ZeroValue(vdl.AnyType),
}
if err := dec.StartValue(); err != nil {
return err
}
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(*x), dec.Type()) {
return fmt.Errorf("incompatible struct %T, from %v", *x, dec.Type())
}
for {
f, err := dec.NextField()
if err != nil {
return err
}
switch f {
case "":
return dec.FinishValue()
case "Payload":
x.Payload = new(vdl.Value)
if err := x.Payload.VDLRead(dec); err != nil {
return err
}
case "Next":
if err := dec.StartValue(); err != nil {
return err
}
if dec.IsNil() {
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(x.Next), dec.Type()) {
return fmt.Errorf("incompatible optional %T, from %v", x.Next, dec.Type())
}
x.Next = nil
if err := dec.FinishValue(); err != nil {
return err
}
} else {
x.Next = new(LargeAnyMessageType)
dec.IgnoreNextStartValue()
if err := x.Next.VDLRead(dec); err != nil {
return err
}
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
var __VDLInitCalled bool
// __VDLInit performs vdl initialization. It is safe to call multiple times.
// If you have an init ordering issue, just insert the following line verbatim
// into your source files in this package, right after the "package foo" clause:
//
// var _ = __VDLInit()
//
// The purpose of this function is to ensure that vdl initialization occurs in
// the right order, and very early in the init sequence. In particular, vdl
// registration and package variable initialization needs to occur before
// functions like vdl.TypeOf will work properly.
//
// This function returns a dummy value, so that it can be used to initialize the
// first var in the file, to take advantage of Go's defined init order.
func __VDLInit() struct{} {
if __VDLInitCalled {
return struct{}{}
}
__VDLInitCalled = true
// Register types.
vdl.Register((*TestCase)(nil))
vdl.Register((*ConvertGroup)(nil))
vdl.Register((*VomdataStruct)(nil))
vdl.Register((*NBool)(nil))
vdl.Register((*NString)(nil))
vdl.Register((*NByteSlice)(nil))
vdl.Register((*NByteArray)(nil))
vdl.Register((*NByte)(nil))
vdl.Register((*NUint16)(nil))
vdl.Register((*NUint32)(nil))
vdl.Register((*NUint64)(nil))
vdl.Register((*NInt8)(nil))
vdl.Register((*NInt16)(nil))
vdl.Register((*NInt32)(nil))
vdl.Register((*NInt64)(nil))
vdl.Register((*NFloat32)(nil))
vdl.Register((*NFloat64)(nil))
vdl.Register((*NArray2Uint64)(nil))
vdl.Register((*NListUint64)(nil))
vdl.Register((*NSetUint64)(nil))
vdl.Register((*NMapUint64String)(nil))
vdl.Register((*NStruct)(nil))
vdl.Register((*NEnum)(nil))
vdl.Register((*NUnion)(nil))
vdl.Register((*MBool)(nil))
vdl.Register((*MStruct)(nil))
vdl.Register((*MList)(nil))
vdl.Register((*MMap)(nil))
vdl.Register((*MByteSlice)(nil))
vdl.Register((*MInt8Slice)(nil))
vdl.Register((*RecA)(nil))
vdl.Register((*RecY)(nil))
vdl.Register((*RecX)(nil))
vdl.Register((*Rec4)(nil))
vdl.Register((*Rec3)(nil))
vdl.Register((*Rec2)(nil))
vdl.Register((*Rec1)(nil))
vdl.Register((*RecStruct)(nil))
vdl.Register((*Rec1234)(nil))
vdl.Register((*Rec1234A)(nil))
vdl.Register((*Rec1234B)(nil))
vdl.Register((*Rec1234All)(nil))
vdl.Register((*ListString)(nil))
vdl.Register((*Array3String)(nil))
vdl.Register((*Array4String)(nil))
vdl.Register((*AbcStruct)(nil))
vdl.Register((*AdeStruct)(nil))
vdl.Register((*XyzStruct)(nil))
vdl.Register((*YzStruct)(nil))
vdl.Register((*ZStruct)(nil))
vdl.Register((*MapOnlyStruct)(nil))
vdl.Register((*StructOnlyMap)(nil))
vdl.Register((*MapSetStruct)(nil))
vdl.Register((*SetStructMap)(nil))
vdl.Register((*MapStructSet)(nil))
vdl.Register((*SetOnlyMap)(nil))
vdl.Register((*SometimesSetMap)(nil))
vdl.Register((*MapOnlySet)(nil))
vdl.Register((*SetOnlyA)(nil))
vdl.Register((*SetOnlyA2)(nil))
vdl.Register((*SetOnlyB)(nil))
vdl.Register((*SetOnlyB2)(nil))
vdl.Register((*MapOnlyA)(nil))
vdl.Register((*MapOnlyA2)(nil))
vdl.Register((*MapOnlyB)(nil))
vdl.Register((*MapOnlyB2)(nil))
vdl.Register((*BdeUnion)(nil))
vdl.Register((*BrieEnum)(nil))
vdl.Register((*BeanEnum)(nil))
vdl.Register((*FoodEnum)(nil))
vdl.Register((*StructAny)(nil))
vdl.Register((*StructMap)(nil))
vdl.Register((*StructManyTypes)(nil))
vdl.Register((*AnySlice)(nil))
vdl.Register((*LargeMessageType)(nil))
vdl.Register((*LargeAnyMessageType)(nil))
return struct{}{}
}