blob: 6dd60fa40580c890432a34c0816935ebb2bc232d [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: testtypes
package testtypes
import (
"fmt"
"v.io/v23/vdl"
)
var _ = __VDLInit() // Must be first; see __VDLInit comments for details.
//////////////////////////////////////////////////
// Type definitions
type AnEnum int
const (
AnEnumFirst AnEnum = iota
AnEnumSecond
)
// AnEnumAll holds all labels for AnEnum.
var AnEnumAll = [...]AnEnum{AnEnumFirst, AnEnumSecond}
// AnEnumFromString creates a AnEnum from a string label.
func AnEnumFromString(label string) (x AnEnum, err error) {
err = x.Set(label)
return
}
// Set assigns label to x.
func (x *AnEnum) Set(label string) error {
switch label {
case "First", "first":
*x = AnEnumFirst
return nil
case "Second", "second":
*x = AnEnumSecond
return nil
}
*x = -1
return fmt.Errorf("unknown label %q in testtypes.AnEnum", label)
}
// String returns the string label of x.
func (x AnEnum) String() string {
switch x {
case AnEnumFirst:
return "First"
case AnEnumSecond:
return "Second"
}
return ""
}
func (AnEnum) __VDLReflect(struct {
Name string `vdl:"src/v.io/x/mojo/transcoder/testtypes.AnEnum"`
Enum struct{ First, Second string }
}) {
}
func (m *AnEnum) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
if err := t.FromEnumLabel((*m).String(), tt); err != nil {
return err
}
return nil
}
func (m *AnEnum) MakeVDLTarget() vdl.Target {
return &AnEnumTarget{Value: m}
}
type AnEnumTarget struct {
Value *AnEnum
vdl.TargetBase
}
func (t *AnEnumTarget) FromEnumLabel(src string, tt *vdl.Type) error {
if ttWant := vdl.TypeOf((*AnEnum)(nil)); !vdl.Compatible(tt, ttWant) {
return fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
switch src {
case "First":
*t.Value = 0
case "Second":
*t.Value = 1
default:
return fmt.Errorf("label %s not in enum AnEnum", src)
}
return nil
}
func (x AnEnum) VDLIsZero() bool {
return x == AnEnumFirst
}
func (x AnEnum) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*AnEnum)(nil))); err != nil {
return err
}
if err := enc.EncodeString(x.String()); err != nil {
return err
}
return enc.FinishValue()
}
func (x *AnEnum) 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 (
// PodUnion represents any single field of the PodUnion union type.
PodUnion 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 PodUnion union type.
__VDLReflect(__PodUnionReflect)
FillVDLTarget(vdl.Target, *vdl.Type) error
VDLIsZero() bool
VDLWrite(vdl.Encoder) error
}
// PodUnionFInt8 represents field FInt8 of the PodUnion union type.
PodUnionFInt8 struct{ Value int8 }
// PodUnionFInt8Other represents field FInt8Other of the PodUnion union type.
PodUnionFInt8Other struct{ Value int8 }
// PodUnionFUint8 represents field FUint8 of the PodUnion union type.
PodUnionFUint8 struct{ Value byte }
// PodUnionFInt16 represents field FInt16 of the PodUnion union type.
PodUnionFInt16 struct{ Value int16 }
// PodUnionFUint16 represents field FUint16 of the PodUnion union type.
PodUnionFUint16 struct{ Value uint16 }
// PodUnionFint32 represents field Fint32 of the PodUnion union type.
PodUnionFint32 struct{ Value int32 }
// PodUnionFuint32 represents field Fuint32 of the PodUnion union type.
PodUnionFuint32 struct{ Value uint32 }
// PodUnionFInt64 represents field FInt64 of the PodUnion union type.
PodUnionFInt64 struct{ Value int64 }
// PodUnionFUint64 represents field FUint64 of the PodUnion union type.
PodUnionFUint64 struct{ Value uint64 }
// PodUnionFFloat represents field FFloat of the PodUnion union type.
PodUnionFFloat struct{ Value float32 }
// PodUnionFDouble represents field FDouble of the PodUnion union type.
PodUnionFDouble struct{ Value float64 }
// PodUnionFBool represents field FBool of the PodUnion union type.
PodUnionFBool struct{ Value bool }
// PodUnionFEnum represents field FEnum of the PodUnion union type.
PodUnionFEnum struct{ Value AnEnum }
// __PodUnionReflect describes the PodUnion union type.
__PodUnionReflect struct {
Name string `vdl:"src/v.io/x/mojo/transcoder/testtypes.PodUnion"`
Type PodUnion
UnionTargetFactory podUnionTargetFactory
Union struct {
FInt8 PodUnionFInt8
FInt8Other PodUnionFInt8Other
FUint8 PodUnionFUint8
FInt16 PodUnionFInt16
FUint16 PodUnionFUint16
Fint32 PodUnionFint32
Fuint32 PodUnionFuint32
FInt64 PodUnionFInt64
FUint64 PodUnionFUint64
FFloat PodUnionFFloat
FDouble PodUnionFDouble
FBool PodUnionFBool
FEnum PodUnionFEnum
}
}
)
func (x PodUnionFInt8) Index() int { return 0 }
func (x PodUnionFInt8) Interface() interface{} { return x.Value }
func (x PodUnionFInt8) Name() string { return "FInt8" }
func (x PodUnionFInt8) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFInt8) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FInt8")
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(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 PodUnionFInt8) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFInt8Other) Index() int { return 1 }
func (x PodUnionFInt8Other) Interface() interface{} { return x.Value }
func (x PodUnionFInt8Other) Name() string { return "FInt8Other" }
func (x PodUnionFInt8Other) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFInt8Other) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FInt8Other")
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(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 PodUnionFInt8Other) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFUint8) Index() int { return 2 }
func (x PodUnionFUint8) Interface() interface{} { return x.Value }
func (x PodUnionFUint8) Name() string { return "FUint8" }
func (x PodUnionFUint8) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFUint8) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FUint8")
if err != nil {
return err
}
if err := fieldTarget3.FromUint(uint64(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 PodUnionFUint8) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFInt16) Index() int { return 3 }
func (x PodUnionFInt16) Interface() interface{} { return x.Value }
func (x PodUnionFInt16) Name() string { return "FInt16" }
func (x PodUnionFInt16) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFInt16) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FInt16")
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(m.Value), tt.NonOptional().Field(3).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 PodUnionFInt16) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFUint16) Index() int { return 4 }
func (x PodUnionFUint16) Interface() interface{} { return x.Value }
func (x PodUnionFUint16) Name() string { return "FUint16" }
func (x PodUnionFUint16) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFUint16) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FUint16")
if err != nil {
return err
}
if err := fieldTarget3.FromUint(uint64(m.Value), tt.NonOptional().Field(4).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 PodUnionFUint16) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFint32) Index() int { return 5 }
func (x PodUnionFint32) Interface() interface{} { return x.Value }
func (x PodUnionFint32) Name() string { return "Fint32" }
func (x PodUnionFint32) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFint32) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Fint32")
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(m.Value), tt.NonOptional().Field(5).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 PodUnionFint32) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFuint32) Index() int { return 6 }
func (x PodUnionFuint32) Interface() interface{} { return x.Value }
func (x PodUnionFuint32) Name() string { return "Fuint32" }
func (x PodUnionFuint32) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFuint32) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Fuint32")
if err != nil {
return err
}
if err := fieldTarget3.FromUint(uint64(m.Value), tt.NonOptional().Field(6).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 PodUnionFuint32) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFInt64) Index() int { return 7 }
func (x PodUnionFInt64) Interface() interface{} { return x.Value }
func (x PodUnionFInt64) Name() string { return "FInt64" }
func (x PodUnionFInt64) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFInt64) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FInt64")
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(m.Value), tt.NonOptional().Field(7).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 PodUnionFInt64) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFUint64) Index() int { return 8 }
func (x PodUnionFUint64) Interface() interface{} { return x.Value }
func (x PodUnionFUint64) Name() string { return "FUint64" }
func (x PodUnionFUint64) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFUint64) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FUint64")
if err != nil {
return err
}
if err := fieldTarget3.FromUint(uint64(m.Value), tt.NonOptional().Field(8).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 PodUnionFUint64) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFFloat) Index() int { return 9 }
func (x PodUnionFFloat) Interface() interface{} { return x.Value }
func (x PodUnionFFloat) Name() string { return "FFloat" }
func (x PodUnionFFloat) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFFloat) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FFloat")
if err != nil {
return err
}
if err := fieldTarget3.FromFloat(float64(m.Value), tt.NonOptional().Field(9).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 PodUnionFFloat) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFDouble) Index() int { return 10 }
func (x PodUnionFDouble) Interface() interface{} { return x.Value }
func (x PodUnionFDouble) Name() string { return "FDouble" }
func (x PodUnionFDouble) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFDouble) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FDouble")
if err != nil {
return err
}
if err := fieldTarget3.FromFloat(float64(m.Value), tt.NonOptional().Field(10).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 PodUnionFDouble) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFBool) Index() int { return 11 }
func (x PodUnionFBool) Interface() interface{} { return x.Value }
func (x PodUnionFBool) Name() string { return "FBool" }
func (x PodUnionFBool) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFBool) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FBool")
if err != nil {
return err
}
if err := fieldTarget3.FromBool(bool(m.Value), tt.NonOptional().Field(11).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 PodUnionFBool) MakeVDLTarget() vdl.Target {
return nil
}
func (x PodUnionFEnum) Index() int { return 12 }
func (x PodUnionFEnum) Interface() interface{} { return x.Value }
func (x PodUnionFEnum) Name() string { return "FEnum" }
func (x PodUnionFEnum) __VDLReflect(__PodUnionReflect) {}
func (m PodUnionFEnum) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FEnum")
if err != nil {
return err
}
if err := m.Value.FillVDLTarget(fieldTarget3, tt.NonOptional().Field(12).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 PodUnionFEnum) MakeVDLTarget() vdl.Target {
return nil
}
type PodUnionTarget struct {
Value *PodUnion
fieldName string
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *PodUnionTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*PodUnion)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *PodUnionTarget) StartField(name string) (key, field vdl.Target, _ error) {
t.fieldName = name
switch name {
case "FInt8":
val := int8(0)
return nil, &vdl.Int8Target{Value: &val}, nil
case "FInt8Other":
val := int8(0)
return nil, &vdl.Int8Target{Value: &val}, nil
case "FUint8":
val := byte(0)
return nil, &vdl.ByteTarget{Value: &val}, nil
case "FInt16":
val := int16(0)
return nil, &vdl.Int16Target{Value: &val}, nil
case "FUint16":
val := uint16(0)
return nil, &vdl.Uint16Target{Value: &val}, nil
case "Fint32":
val := int32(0)
return nil, &vdl.Int32Target{Value: &val}, nil
case "Fuint32":
val := uint32(0)
return nil, &vdl.Uint32Target{Value: &val}, nil
case "FInt64":
val := int64(0)
return nil, &vdl.Int64Target{Value: &val}, nil
case "FUint64":
val := uint64(0)
return nil, &vdl.Uint64Target{Value: &val}, nil
case "FFloat":
val := float32(0)
return nil, &vdl.Float32Target{Value: &val}, nil
case "FDouble":
val := float64(0)
return nil, &vdl.Float64Target{Value: &val}, nil
case "FBool":
val := false
return nil, &vdl.BoolTarget{Value: &val}, nil
case "FEnum":
val := AnEnumFirst
return nil, &AnEnumTarget{Value: &val}, nil
default:
return nil, nil, fmt.Errorf("field %s not in union src/v.io/x/mojo/transcoder/testtypes.PodUnion", name)
}
}
func (t *PodUnionTarget) FinishField(_, fieldTarget vdl.Target) error {
switch t.fieldName {
case "FInt8":
*t.Value = PodUnionFInt8{*(fieldTarget.(*vdl.Int8Target)).Value}
case "FInt8Other":
*t.Value = PodUnionFInt8Other{*(fieldTarget.(*vdl.Int8Target)).Value}
case "FUint8":
*t.Value = PodUnionFUint8{*(fieldTarget.(*vdl.ByteTarget)).Value}
case "FInt16":
*t.Value = PodUnionFInt16{*(fieldTarget.(*vdl.Int16Target)).Value}
case "FUint16":
*t.Value = PodUnionFUint16{*(fieldTarget.(*vdl.Uint16Target)).Value}
case "Fint32":
*t.Value = PodUnionFint32{*(fieldTarget.(*vdl.Int32Target)).Value}
case "Fuint32":
*t.Value = PodUnionFuint32{*(fieldTarget.(*vdl.Uint32Target)).Value}
case "FInt64":
*t.Value = PodUnionFInt64{*(fieldTarget.(*vdl.Int64Target)).Value}
case "FUint64":
*t.Value = PodUnionFUint64{*(fieldTarget.(*vdl.Uint64Target)).Value}
case "FFloat":
*t.Value = PodUnionFFloat{*(fieldTarget.(*vdl.Float32Target)).Value}
case "FDouble":
*t.Value = PodUnionFDouble{*(fieldTarget.(*vdl.Float64Target)).Value}
case "FBool":
*t.Value = PodUnionFBool{*(fieldTarget.(*vdl.BoolTarget)).Value}
case "FEnum":
*t.Value = PodUnionFEnum{*(fieldTarget.(*AnEnumTarget)).Value}
}
return nil
}
func (t *PodUnionTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
type podUnionTargetFactory struct{}
func (t podUnionTargetFactory) VDLMakeUnionTarget(union interface{}) (vdl.Target, error) {
if typedUnion, ok := union.(*PodUnion); ok {
return &PodUnionTarget{Value: typedUnion}, nil
}
return nil, fmt.Errorf("got %T, want *PodUnion", union)
}
func (x PodUnionFInt8) VDLIsZero() bool {
return x.Value == 0
}
func (x PodUnionFInt8Other) VDLIsZero() bool {
return false
}
func (x PodUnionFUint8) VDLIsZero() bool {
return false
}
func (x PodUnionFInt16) VDLIsZero() bool {
return false
}
func (x PodUnionFUint16) VDLIsZero() bool {
return false
}
func (x PodUnionFint32) VDLIsZero() bool {
return false
}
func (x PodUnionFuint32) VDLIsZero() bool {
return false
}
func (x PodUnionFInt64) VDLIsZero() bool {
return false
}
func (x PodUnionFUint64) VDLIsZero() bool {
return false
}
func (x PodUnionFFloat) VDLIsZero() bool {
return false
}
func (x PodUnionFDouble) VDLIsZero() bool {
return false
}
func (x PodUnionFBool) VDLIsZero() bool {
return false
}
func (x PodUnionFEnum) VDLIsZero() bool {
return false
}
func (x PodUnionFInt8) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FInt8"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int8Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(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 PodUnionFInt8Other) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FInt8Other"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int8Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(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 PodUnionFUint8) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FUint8"); err != nil {
return err
}
if err := enc.StartValue(vdl.ByteType); err != nil {
return err
}
if err := enc.EncodeUint(uint64(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 PodUnionFInt16) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FInt16"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int16Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(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 PodUnionFUint16) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FUint16"); err != nil {
return err
}
if err := enc.StartValue(vdl.Uint16Type); err != nil {
return err
}
if err := enc.EncodeUint(uint64(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 PodUnionFint32) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("Fint32"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int32Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(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 PodUnionFuint32) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("Fuint32"); err != nil {
return err
}
if err := enc.StartValue(vdl.Uint32Type); err != nil {
return err
}
if err := enc.EncodeUint(uint64(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 PodUnionFInt64) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FInt64"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int64Type); 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 (x PodUnionFUint64) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FUint64"); err != nil {
return err
}
if err := enc.StartValue(vdl.Uint64Type); err != nil {
return err
}
if err := enc.EncodeUint(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 PodUnionFFloat) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FFloat"); err != nil {
return err
}
if err := enc.StartValue(vdl.Float32Type); err != nil {
return err
}
if err := enc.EncodeFloat(float64(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 PodUnionFDouble) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FDouble"); err != nil {
return err
}
if err := enc.StartValue(vdl.Float64Type); err != nil {
return err
}
if err := enc.EncodeFloat(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 PodUnionFBool) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FBool"); err != nil {
return err
}
if err := enc.StartValue(vdl.BoolType); 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 PodUnionFEnum) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FEnum"); 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 VDLReadPodUnion(dec vdl.Decoder, x *PodUnion) 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 "FInt8":
var field PodUnionFInt8
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(8)
if err != nil {
return err
}
field.Value = int8(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "FInt8Other":
var field PodUnionFInt8Other
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(8)
if err != nil {
return err
}
field.Value = int8(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "FUint8":
var field PodUnionFUint8
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(8)
if err != nil {
return err
}
field.Value = byte(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "FInt16":
var field PodUnionFInt16
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(16)
if err != nil {
return err
}
field.Value = int16(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "FUint16":
var field PodUnionFUint16
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(16)
if err != nil {
return err
}
field.Value = uint16(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "Fint32":
var field PodUnionFint32
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(32)
if err != nil {
return err
}
field.Value = int32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "Fuint32":
var field PodUnionFuint32
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeUint(32)
if err != nil {
return err
}
field.Value = uint32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "FInt64":
var field PodUnionFInt64
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 "FUint64":
var field PodUnionFUint64
if err := dec.StartValue(); err != nil {
return err
}
var err error
if field.Value, err = dec.DecodeUint(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "FFloat":
var field PodUnionFFloat
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeFloat(32)
if err != nil {
return err
}
field.Value = float32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "FDouble":
var field PodUnionFDouble
if err := dec.StartValue(); err != nil {
return err
}
var err error
if field.Value, err = dec.DecodeFloat(64); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "FBool":
var field PodUnionFBool
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 "FEnum":
var field PodUnionFEnum
if err := field.Value.VDLRead(dec); 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 PodUnionWrapper struct {
PodUnion PodUnion
}
func (PodUnionWrapper) __VDLReflect(struct {
Name string `vdl:"src/v.io/x/mojo/transcoder/testtypes.PodUnionWrapper"`
}) {
}
func (m *PodUnionWrapper) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var var4 bool
if field, ok := m.PodUnion.(PodUnionFInt8); ok {
var5 := (field.Value == int8(0))
var4 = var5
}
if var4 {
if err := fieldsTarget1.ZeroField("PodUnion"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("PodUnion")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
unionValue6 := m.PodUnion
if unionValue6 == nil {
unionValue6 = PodUnionFInt8{}
}
if err := unionValue6.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 *PodUnionWrapper) MakeVDLTarget() vdl.Target {
return &PodUnionWrapperTarget{Value: m}
}
type PodUnionWrapperTarget struct {
Value *PodUnionWrapper
podUnionTarget PodUnionTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *PodUnionWrapperTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*PodUnionWrapper)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *PodUnionWrapperTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "PodUnion":
t.podUnionTarget.Value = &t.Value.PodUnion
target, err := &t.podUnionTarget, error(nil)
return nil, target, err
default:
return nil, nil, vdl.ErrFieldNoExist
}
}
func (t *PodUnionWrapperTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *PodUnionWrapperTarget) ZeroField(name string) error {
switch name {
case "PodUnion":
t.Value.PodUnion = PodUnion(PodUnionFInt8{})
return nil
default:
return vdl.ErrFieldNoExist
}
}
func (t *PodUnionWrapperTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x PodUnionWrapper) VDLIsZero() bool {
if x.PodUnion != nil && !x.PodUnion.VDLIsZero() {
return false
}
return true
}
func (x PodUnionWrapper) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*PodUnionWrapper)(nil)).Elem()); err != nil {
return err
}
if x.PodUnion != nil && !x.PodUnion.VDLIsZero() {
if err := enc.NextField("PodUnion"); err != nil {
return err
}
if err := x.PodUnion.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *PodUnionWrapper) VDLRead(dec vdl.Decoder) error {
*x = PodUnionWrapper{
PodUnion: PodUnionFInt8{},
}
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 "PodUnion":
if err := VDLReadPodUnion(dec, &x.PodUnion); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type DummyStruct struct {
FInt8 int8
}
func (DummyStruct) __VDLReflect(struct {
Name string `vdl:"src/v.io/x/mojo/transcoder/testtypes.DummyStruct"`
}) {
}
func (m *DummyStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.FInt8 == int8(0))
if var4 {
if err := fieldsTarget1.ZeroField("FInt8"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FInt8")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(m.FInt8), 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 *DummyStruct) MakeVDLTarget() vdl.Target {
return &DummyStructTarget{Value: m}
}
type DummyStructTarget struct {
Value *DummyStruct
fInt8Target vdl.Int8Target
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *DummyStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*DummyStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *DummyStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "FInt8":
t.fInt8Target.Value = &t.Value.FInt8
target, err := &t.fInt8Target, error(nil)
return nil, target, err
default:
return nil, nil, vdl.ErrFieldNoExist
}
}
func (t *DummyStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *DummyStructTarget) ZeroField(name string) error {
switch name {
case "FInt8":
t.Value.FInt8 = int8(0)
return nil
default:
return vdl.ErrFieldNoExist
}
}
func (t *DummyStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x DummyStruct) VDLIsZero() bool {
return x == DummyStruct{}
}
func (x DummyStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*DummyStruct)(nil)).Elem()); err != nil {
return err
}
if x.FInt8 != 0 {
if err := enc.NextField("FInt8"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int8Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.FInt8)); 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 *DummyStruct) VDLRead(dec vdl.Decoder) error {
*x = DummyStruct{}
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 "FInt8":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(8)
if err != nil {
return err
}
x.FInt8 = int8(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type (
// ObjectUnion represents any single field of the ObjectUnion union type.
ObjectUnion 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 ObjectUnion union type.
__VDLReflect(__ObjectUnionReflect)
FillVDLTarget(vdl.Target, *vdl.Type) error
VDLIsZero() bool
VDLWrite(vdl.Encoder) error
}
// ObjectUnionFInt8 represents field FInt8 of the ObjectUnion union type.
ObjectUnionFInt8 struct{ Value int8 }
// ObjectUnionFString represents field FString of the ObjectUnion union type.
ObjectUnionFString struct{ Value string }
// ObjectUnionFDummy represents field FDummy of the ObjectUnion union type.
ObjectUnionFDummy struct{ Value DummyStruct }
// ObjectUnionFNullable represents field FNullable of the ObjectUnion union type.
ObjectUnionFNullable struct{ Value *DummyStruct }
// ObjectUnionFArrayInt8 represents field FArrayInt8 of the ObjectUnion union type.
ObjectUnionFArrayInt8 struct{ Value []int8 }
// ObjectUnionFMapInt8 represents field FMapInt8 of the ObjectUnion union type.
ObjectUnionFMapInt8 struct{ Value map[string]int8 }
// ObjectUnionFPodUnion represents field FPodUnion of the ObjectUnion union type.
ObjectUnionFPodUnion struct{ Value PodUnion }
// __ObjectUnionReflect describes the ObjectUnion union type.
__ObjectUnionReflect struct {
Name string `vdl:"src/v.io/x/mojo/transcoder/testtypes.ObjectUnion"`
Type ObjectUnion
UnionTargetFactory objectUnionTargetFactory
Union struct {
FInt8 ObjectUnionFInt8
FString ObjectUnionFString
FDummy ObjectUnionFDummy
FNullable ObjectUnionFNullable
FArrayInt8 ObjectUnionFArrayInt8
FMapInt8 ObjectUnionFMapInt8
FPodUnion ObjectUnionFPodUnion
}
}
)
func (x ObjectUnionFInt8) Index() int { return 0 }
func (x ObjectUnionFInt8) Interface() interface{} { return x.Value }
func (x ObjectUnionFInt8) Name() string { return "FInt8" }
func (x ObjectUnionFInt8) __VDLReflect(__ObjectUnionReflect) {}
func (m ObjectUnionFInt8) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FInt8")
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(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 ObjectUnionFInt8) MakeVDLTarget() vdl.Target {
return nil
}
func (x ObjectUnionFString) Index() int { return 1 }
func (x ObjectUnionFString) Interface() interface{} { return x.Value }
func (x ObjectUnionFString) Name() string { return "FString" }
func (x ObjectUnionFString) __VDLReflect(__ObjectUnionReflect) {}
func (m ObjectUnionFString) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FString")
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 ObjectUnionFString) MakeVDLTarget() vdl.Target {
return nil
}
func (x ObjectUnionFDummy) Index() int { return 2 }
func (x ObjectUnionFDummy) Interface() interface{} { return x.Value }
func (x ObjectUnionFDummy) Name() string { return "FDummy" }
func (x ObjectUnionFDummy) __VDLReflect(__ObjectUnionReflect) {}
func (m ObjectUnionFDummy) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FDummy")
if err != nil {
return err
}
if err := m.Value.FillVDLTarget(fieldTarget3, 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 ObjectUnionFDummy) MakeVDLTarget() vdl.Target {
return nil
}
func (x ObjectUnionFNullable) Index() int { return 3 }
func (x ObjectUnionFNullable) Interface() interface{} { return x.Value }
func (x ObjectUnionFNullable) Name() string { return "FNullable" }
func (x ObjectUnionFNullable) __VDLReflect(__ObjectUnionReflect) {}
func (m ObjectUnionFNullable) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FNullable")
if err != nil {
return err
}
if err := m.Value.FillVDLTarget(fieldTarget3, tt.NonOptional().Field(3).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 ObjectUnionFNullable) MakeVDLTarget() vdl.Target {
return nil
}
func (x ObjectUnionFArrayInt8) Index() int { return 4 }
func (x ObjectUnionFArrayInt8) Interface() interface{} { return x.Value }
func (x ObjectUnionFArrayInt8) Name() string { return "FArrayInt8" }
func (x ObjectUnionFArrayInt8) __VDLReflect(__ObjectUnionReflect) {}
func (m ObjectUnionFArrayInt8) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FArrayInt8")
if err != nil {
return err
}
listTarget4, err := fieldTarget3.StartList(tt.NonOptional().Field(4).Type, len(m.Value))
if err != nil {
return err
}
for i, elem6 := range m.Value {
elemTarget5, err := listTarget4.StartElem(i)
if err != nil {
return err
}
if err := elemTarget5.FromInt(int64(elem6), tt.NonOptional().Field(4).Type.Elem()); err != nil {
return err
}
if err := listTarget4.FinishElem(elemTarget5); err != nil {
return err
}
}
if err := fieldTarget3.FinishList(listTarget4); 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 ObjectUnionFArrayInt8) MakeVDLTarget() vdl.Target {
return nil
}
func (x ObjectUnionFMapInt8) Index() int { return 5 }
func (x ObjectUnionFMapInt8) Interface() interface{} { return x.Value }
func (x ObjectUnionFMapInt8) Name() string { return "FMapInt8" }
func (x ObjectUnionFMapInt8) __VDLReflect(__ObjectUnionReflect) {}
func (m ObjectUnionFMapInt8) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FMapInt8")
if err != nil {
return err
}
mapTarget4, err := fieldTarget3.StartMap(tt.NonOptional().Field(5).Type, len(m.Value))
if err != nil {
return err
}
for key6, value8 := range m.Value {
keyTarget5, err := mapTarget4.StartKey()
if err != nil {
return err
}
if err := keyTarget5.FromString(string(key6), tt.NonOptional().Field(5).Type.Key()); err != nil {
return err
}
valueTarget7, err := mapTarget4.FinishKeyStartField(keyTarget5)
if err != nil {
return err
}
if err := valueTarget7.FromInt(int64(value8), tt.NonOptional().Field(5).Type.Elem()); err != nil {
return err
}
if err := mapTarget4.FinishField(keyTarget5, valueTarget7); err != nil {
return err
}
}
if err := fieldTarget3.FinishMap(mapTarget4); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m ObjectUnionFMapInt8) MakeVDLTarget() vdl.Target {
return nil
}
func (x ObjectUnionFPodUnion) Index() int { return 6 }
func (x ObjectUnionFPodUnion) Interface() interface{} { return x.Value }
func (x ObjectUnionFPodUnion) Name() string { return "FPodUnion" }
func (x ObjectUnionFPodUnion) __VDLReflect(__ObjectUnionReflect) {}
func (m ObjectUnionFPodUnion) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FPodUnion")
if err != nil {
return err
}
unionValue4 := m.Value
if unionValue4 == nil {
unionValue4 = PodUnionFInt8{}
}
if err := unionValue4.FillVDLTarget(fieldTarget3, tt.NonOptional().Field(6).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 ObjectUnionFPodUnion) MakeVDLTarget() vdl.Target {
return nil
}
type ObjectUnionTarget struct {
Value *ObjectUnion
fieldName string
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *ObjectUnionTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*ObjectUnion)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *ObjectUnionTarget) StartField(name string) (key, field vdl.Target, _ error) {
t.fieldName = name
switch name {
case "FInt8":
val := int8(0)
return nil, &vdl.Int8Target{Value: &val}, nil
case "FString":
val := ""
return nil, &vdl.StringTarget{Value: &val}, nil
case "FDummy":
val := DummyStruct{}
return nil, &DummyStructTarget{Value: &val}, nil
case "FNullable":
val := (*DummyStruct)(nil)
return nil, &__VDLTarget1_optional{Value: &val}, nil
case "FArrayInt8":
val := []int8(nil)
return nil, &__VDLTarget2_list{Value: &val}, nil
case "FMapInt8":
val := map[string]int8(nil)
return nil, &__VDLTarget3_map{Value: &val}, nil
case "FPodUnion":
val := PodUnion(PodUnionFInt8{})
return nil, &PodUnionTarget{Value: &val}, nil
default:
return nil, nil, fmt.Errorf("field %s not in union src/v.io/x/mojo/transcoder/testtypes.ObjectUnion", name)
}
}
func (t *ObjectUnionTarget) FinishField(_, fieldTarget vdl.Target) error {
switch t.fieldName {
case "FInt8":
*t.Value = ObjectUnionFInt8{*(fieldTarget.(*vdl.Int8Target)).Value}
case "FString":
*t.Value = ObjectUnionFString{*(fieldTarget.(*vdl.StringTarget)).Value}
case "FDummy":
*t.Value = ObjectUnionFDummy{*(fieldTarget.(*DummyStructTarget)).Value}
case "FNullable":
*t.Value = ObjectUnionFNullable{*(fieldTarget.(*__VDLTarget1_optional)).Value}
case "FArrayInt8":
*t.Value = ObjectUnionFArrayInt8{*(fieldTarget.(*__VDLTarget2_list)).Value}
case "FMapInt8":
*t.Value = ObjectUnionFMapInt8{*(fieldTarget.(*__VDLTarget3_map)).Value}
case "FPodUnion":
*t.Value = ObjectUnionFPodUnion{*(fieldTarget.(*PodUnionTarget)).Value}
}
return nil
}
func (t *ObjectUnionTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
type objectUnionTargetFactory struct{}
func (t objectUnionTargetFactory) VDLMakeUnionTarget(union interface{}) (vdl.Target, error) {
if typedUnion, ok := union.(*ObjectUnion); ok {
return &ObjectUnionTarget{Value: typedUnion}, nil
}
return nil, fmt.Errorf("got %T, want *ObjectUnion", union)
}
// Optional DummyStruct
type __VDLTarget1_optional struct {
Value **DummyStruct
elemTarget DummyStructTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *__VDLTarget1_optional) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if *t.Value == nil {
*t.Value = &DummyStruct{}
}
t.elemTarget.Value = *t.Value
target, err := &t.elemTarget, error(nil)
if err != nil {
return nil, err
}
return target.StartFields(tt)
}
func (t *__VDLTarget1_optional) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (t *__VDLTarget1_optional) FromNil(tt *vdl.Type) error {
*t.Value = (*DummyStruct)(nil)
return nil
}
// []int8
type __VDLTarget2_list struct {
Value *[]int8
elemTarget vdl.Int8Target
vdl.TargetBase
vdl.ListTargetBase
}
func (t *__VDLTarget2_list) StartList(tt *vdl.Type, len int) (vdl.ListTarget, error) {
if ttWant := vdl.TypeOf((*[]int8)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
if cap(*t.Value) < len {
*t.Value = make([]int8, len)
} else {
*t.Value = (*t.Value)[:len]
}
return t, nil
}
func (t *__VDLTarget2_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 *__VDLTarget2_list) FinishElem(elem vdl.Target) error {
return nil
}
func (t *__VDLTarget2_list) FinishList(elem vdl.ListTarget) error {
return nil
}
// map[string]int8
type __VDLTarget3_map struct {
Value *map[string]int8
currKey string
currElem int8
keyTarget vdl.StringTarget
elemTarget vdl.Int8Target
vdl.TargetBase
vdl.MapTargetBase
}
func (t *__VDLTarget3_map) StartMap(tt *vdl.Type, len int) (vdl.MapTarget, error) {
if ttWant := vdl.TypeOf((*map[string]int8)(nil)); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
*t.Value = make(map[string]int8)
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 = int8(0)
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
}
func (x ObjectUnionFInt8) VDLIsZero() bool {
return x.Value == 0
}
func (x ObjectUnionFString) VDLIsZero() bool {
return false
}
func (x ObjectUnionFDummy) VDLIsZero() bool {
return false
}
func (x ObjectUnionFNullable) VDLIsZero() bool {
return false
}
func (x ObjectUnionFArrayInt8) VDLIsZero() bool {
return false
}
func (x ObjectUnionFMapInt8) VDLIsZero() bool {
return false
}
func (x ObjectUnionFPodUnion) VDLIsZero() bool {
return false
}
func (x ObjectUnionFInt8) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ObjectUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FInt8"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int8Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(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 ObjectUnionFString) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ObjectUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FString"); err != nil {
return err
}
if err := enc.StartValue(vdl.StringType); 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 ObjectUnionFDummy) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ObjectUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FDummy"); 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 (x ObjectUnionFNullable) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ObjectUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FNullable"); err != nil {
return err
}
if x.Value == nil {
if err := enc.NilValue(vdl.TypeOf((**DummyStruct)(nil))); err != nil {
return err
}
} else {
enc.SetNextStartValueIsOptional()
if err := x.Value.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x ObjectUnionFArrayInt8) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ObjectUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FArrayInt8"); err != nil {
return err
}
if err := __VDLWriteAnon_list_1(enc, x.Value); err != nil {
return err
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x ObjectUnionFMapInt8) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ObjectUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FMapInt8"); err != nil {
return err
}
if err := __VDLWriteAnon_map_2(enc, x.Value); err != nil {
return err
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x ObjectUnionFPodUnion) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ObjectUnion)(nil))); err != nil {
return err
}
if err := enc.NextField("FPodUnion"); err != nil {
return err
}
switch {
case x.Value == nil:
// Write the zero value of the union type.
if err := vdl.ZeroValue(vdl.TypeOf((*PodUnion)(nil))).VDLWrite(enc); err != nil {
return err
}
default:
if err := x.Value.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func __VDLWriteAnon_list_1(enc vdl.Encoder, x []int8) error {
if err := enc.StartValue(vdl.TypeOf((*[]int8)(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.Int8Type); 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 __VDLWriteAnon_map_2(enc vdl.Encoder, x map[string]int8) error {
if err := enc.StartValue(vdl.TypeOf((*map[string]int8)(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.StringType); 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.Int8Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(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 VDLReadObjectUnion(dec vdl.Decoder, x *ObjectUnion) 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 "FInt8":
var field ObjectUnionFInt8
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(8)
if err != nil {
return err
}
field.Value = int8(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
*x = field
case "FString":
var field ObjectUnionFString
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 "FDummy":
var field ObjectUnionFDummy
if err := field.Value.VDLRead(dec); err != nil {
return err
}
*x = field
case "FNullable":
var field ObjectUnionFNullable
if err := dec.StartValue(); err != nil {
return err
}
if dec.IsNil() {
if (dec.StackDepth() == 1 || dec.IsAny()) && !vdl.Compatible(vdl.TypeOf(field.Value), dec.Type()) {
return fmt.Errorf("incompatible optional %T, from %v", field.Value, dec.Type())
}
field.Value = nil
if err := dec.FinishValue(); err != nil {
return err
}
} else {
field.Value = new(DummyStruct)
dec.IgnoreNextStartValue()
if err := field.Value.VDLRead(dec); err != nil {
return err
}
}
*x = field
case "FArrayInt8":
var field ObjectUnionFArrayInt8
if err := __VDLReadAnon_list_1(dec, &field.Value); err != nil {
return err
}
*x = field
case "FMapInt8":
var field ObjectUnionFMapInt8
if err := __VDLReadAnon_map_2(dec, &field.Value); err != nil {
return err
}
*x = field
case "FPodUnion":
var field ObjectUnionFPodUnion
if err := VDLReadPodUnion(dec, &field.Value); 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()
}
func __VDLReadAnon_list_1(dec vdl.Decoder, x *[]int8) 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([]int8, 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)
}
}
func __VDLReadAnon_map_2(dec vdl.Decoder, x *map[string]int8) 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]int8
if len := dec.LenHint(); len > 0 {
tmpMap = make(map[string]int8, 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 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
}
}
if tmpMap == nil {
tmpMap = make(map[string]int8)
}
tmpMap[key] = elem
}
}
type ObjectUnionWrapper struct {
ObjectUnion ObjectUnion
}
func (ObjectUnionWrapper) __VDLReflect(struct {
Name string `vdl:"src/v.io/x/mojo/transcoder/testtypes.ObjectUnionWrapper"`
}) {
}
func (m *ObjectUnionWrapper) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var var4 bool
if field, ok := m.ObjectUnion.(ObjectUnionFInt8); ok {
var5 := (field.Value == int8(0))
var4 = var5
}
if var4 {
if err := fieldsTarget1.ZeroField("ObjectUnion"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("ObjectUnion")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
unionValue6 := m.ObjectUnion
if unionValue6 == nil {
unionValue6 = ObjectUnionFInt8{}
}
if err := unionValue6.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 *ObjectUnionWrapper) MakeVDLTarget() vdl.Target {
return &ObjectUnionWrapperTarget{Value: m}
}
type ObjectUnionWrapperTarget struct {
Value *ObjectUnionWrapper
objectUnionTarget ObjectUnionTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *ObjectUnionWrapperTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*ObjectUnionWrapper)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *ObjectUnionWrapperTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "ObjectUnion":
t.objectUnionTarget.Value = &t.Value.ObjectUnion
target, err := &t.objectUnionTarget, error(nil)
return nil, target, err
default:
return nil, nil, vdl.ErrFieldNoExist
}
}
func (t *ObjectUnionWrapperTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *ObjectUnionWrapperTarget) ZeroField(name string) error {
switch name {
case "ObjectUnion":
t.Value.ObjectUnion = ObjectUnion(ObjectUnionFInt8{})
return nil
default:
return vdl.ErrFieldNoExist
}
}
func (t *ObjectUnionWrapperTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x ObjectUnionWrapper) VDLIsZero() bool {
if x.ObjectUnion != nil && !x.ObjectUnion.VDLIsZero() {
return false
}
return true
}
func (x ObjectUnionWrapper) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*ObjectUnionWrapper)(nil)).Elem()); err != nil {
return err
}
if x.ObjectUnion != nil && !x.ObjectUnion.VDLIsZero() {
if err := enc.NextField("ObjectUnion"); err != nil {
return err
}
if err := x.ObjectUnion.VDLWrite(enc); err != nil {
return err
}
}
if err := enc.NextField(""); err != nil {
return err
}
return enc.FinishValue()
}
func (x *ObjectUnionWrapper) VDLRead(dec vdl.Decoder) error {
*x = ObjectUnionWrapper{
ObjectUnion: ObjectUnionFInt8{},
}
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 "ObjectUnion":
if err := VDLReadObjectUnion(dec, &x.ObjectUnion); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type Rect struct {
X int32
Y int32
Width int32
Height int32
}
func (Rect) __VDLReflect(struct {
Name string `vdl:"src/v.io/x/mojo/transcoder/testtypes.Rect"`
}) {
}
func (m *Rect) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.X == int32(0))
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.FromInt(int64(m.X), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.Y == int32(0))
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 := fieldTarget6.FromInt(int64(m.Y), tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.Width == int32(0))
if var10 {
if err := fieldsTarget1.ZeroField("Width"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("Width")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget9.FromInt(int64(m.Width), tt.NonOptional().Field(2).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
}
var13 := (m.Height == int32(0))
if var13 {
if err := fieldsTarget1.ZeroField("Height"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget11, fieldTarget12, err := fieldsTarget1.StartField("Height")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget12.FromInt(int64(m.Height), 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 *Rect) MakeVDLTarget() vdl.Target {
return &RectTarget{Value: m}
}
type RectTarget struct {
Value *Rect
xTarget vdl.Int32Target
yTarget vdl.Int32Target
widthTarget vdl.Int32Target
heightTarget vdl.Int32Target
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *RectTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*Rect)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *RectTarget) 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 "Width":
t.widthTarget.Value = &t.Value.Width
target, err := &t.widthTarget, error(nil)
return nil, target, err
case "Height":
t.heightTarget.Value = &t.Value.Height
target, err := &t.heightTarget, error(nil)
return nil, target, err
default:
return nil, nil, vdl.ErrFieldNoExist
}
}
func (t *RectTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *RectTarget) ZeroField(name string) error {
switch name {
case "X":
t.Value.X = int32(0)
return nil
case "Y":
t.Value.Y = int32(0)
return nil
case "Width":
t.Value.Width = int32(0)
return nil
case "Height":
t.Value.Height = int32(0)
return nil
default:
return vdl.ErrFieldNoExist
}
}
func (t *RectTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x Rect) VDLIsZero() bool {
return x == Rect{}
}
func (x Rect) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*Rect)(nil)).Elem()); err != nil {
return err
}
if x.X != 0 {
if err := enc.NextField("X"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int32Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.X)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Y != 0 {
if err := enc.NextField("Y"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int32Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.Y)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Width != 0 {
if err := enc.NextField("Width"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int32Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.Width)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.Height != 0 {
if err := enc.NextField("Height"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int32Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.Height)); 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 *Rect) VDLRead(dec vdl.Decoder) error {
*x = Rect{}
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
}
tmp, err := dec.DecodeInt(32)
if err != nil {
return err
}
x.X = int32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "Y":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(32)
if err != nil {
return err
}
x.Y = int32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "Width":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(32)
if err != nil {
return err
}
x.Width = int32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "Height":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(32)
if err != nil {
return err
}
x.Height = int32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type MultiVersionStruct struct {
FInt32 int32
FRect Rect
FString string
FArray []int8
FBool bool
FInt16 int16
}
func (MultiVersionStruct) __VDLReflect(struct {
Name string `vdl:"src/v.io/x/mojo/transcoder/testtypes.MultiVersionStruct"`
}) {
}
func (m *MultiVersionStruct) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.FInt32 == int32(0))
if var4 {
if err := fieldsTarget1.ZeroField("FInt32"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FInt32")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(m.FInt32), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.FRect == Rect{})
if var7 {
if err := fieldsTarget1.ZeroField("FRect"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("FRect")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.FRect.FillVDLTarget(fieldTarget6, tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.FString == "")
if var10 {
if err := fieldsTarget1.ZeroField("FString"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("FString")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget9.FromString(string(m.FString), 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.FArray) == 0 {
var13 = true
}
if var13 {
if err := fieldsTarget1.ZeroField("FArray"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget11, fieldTarget12, err := fieldsTarget1.StartField("FArray")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
listTarget14, err := fieldTarget12.StartList(tt.NonOptional().Field(3).Type, len(m.FArray))
if err != nil {
return err
}
for i, elem16 := range m.FArray {
elemTarget15, err := listTarget14.StartElem(i)
if err != nil {
return err
}
if err := elemTarget15.FromInt(int64(elem16), tt.NonOptional().Field(3).Type.Elem()); err != nil {
return err
}
if err := listTarget14.FinishElem(elemTarget15); err != nil {
return err
}
}
if err := fieldTarget12.FinishList(listTarget14); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget11, fieldTarget12); err != nil {
return err
}
}
}
var19 := (m.FBool == false)
if var19 {
if err := fieldsTarget1.ZeroField("FBool"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget17, fieldTarget18, err := fieldsTarget1.StartField("FBool")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget18.FromBool(bool(m.FBool), tt.NonOptional().Field(4).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget17, fieldTarget18); err != nil {
return err
}
}
}
var22 := (m.FInt16 == int16(0))
if var22 {
if err := fieldsTarget1.ZeroField("FInt16"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget20, fieldTarget21, err := fieldsTarget1.StartField("FInt16")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget21.FromInt(int64(m.FInt16), tt.NonOptional().Field(5).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 *MultiVersionStruct) MakeVDLTarget() vdl.Target {
return &MultiVersionStructTarget{Value: m}
}
type MultiVersionStructTarget struct {
Value *MultiVersionStruct
fInt32Target vdl.Int32Target
fRectTarget RectTarget
fStringTarget vdl.StringTarget
fArrayTarget __VDLTarget2_list
fBoolTarget vdl.BoolTarget
fInt16Target vdl.Int16Target
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *MultiVersionStructTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*MultiVersionStruct)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *MultiVersionStructTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "FInt32":
t.fInt32Target.Value = &t.Value.FInt32
target, err := &t.fInt32Target, error(nil)
return nil, target, err
case "FRect":
t.fRectTarget.Value = &t.Value.FRect
target, err := &t.fRectTarget, error(nil)
return nil, target, err
case "FString":
t.fStringTarget.Value = &t.Value.FString
target, err := &t.fStringTarget, error(nil)
return nil, target, err
case "FArray":
t.fArrayTarget.Value = &t.Value.FArray
target, err := &t.fArrayTarget, error(nil)
return nil, target, err
case "FBool":
t.fBoolTarget.Value = &t.Value.FBool
target, err := &t.fBoolTarget, error(nil)
return nil, target, err
case "FInt16":
t.fInt16Target.Value = &t.Value.FInt16
target, err := &t.fInt16Target, error(nil)
return nil, target, err
default:
return nil, nil, vdl.ErrFieldNoExist
}
}
func (t *MultiVersionStructTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *MultiVersionStructTarget) ZeroField(name string) error {
switch name {
case "FInt32":
t.Value.FInt32 = int32(0)
return nil
case "FRect":
t.Value.FRect = Rect{}
return nil
case "FString":
t.Value.FString = ""
return nil
case "FArray":
t.Value.FArray = []int8(nil)
return nil
case "FBool":
t.Value.FBool = false
return nil
case "FInt16":
t.Value.FInt16 = int16(0)
return nil
default:
return vdl.ErrFieldNoExist
}
}
func (t *MultiVersionStructTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x MultiVersionStruct) VDLIsZero() bool {
if x.FInt32 != 0 {
return false
}
if x.FRect != (Rect{}) {
return false
}
if x.FString != "" {
return false
}
if len(x.FArray) != 0 {
return false
}
if x.FBool {
return false
}
if x.FInt16 != 0 {
return false
}
return true
}
func (x MultiVersionStruct) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MultiVersionStruct)(nil)).Elem()); err != nil {
return err
}
if x.FInt32 != 0 {
if err := enc.NextField("FInt32"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int32Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.FInt32)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.FRect != (Rect{}) {
if err := enc.NextField("FRect"); err != nil {
return err
}
if err := x.FRect.VDLWrite(enc); err != nil {
return err
}
}
if x.FString != "" {
if err := enc.NextField("FString"); err != nil {
return err
}
if err := enc.StartValue(vdl.StringType); err != nil {
return err
}
if err := enc.EncodeString(x.FString); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if len(x.FArray) != 0 {
if err := enc.NextField("FArray"); err != nil {
return err
}
if err := __VDLWriteAnon_list_1(enc, x.FArray); err != nil {
return err
}
}
if x.FBool {
if err := enc.NextField("FBool"); err != nil {
return err
}
if err := enc.StartValue(vdl.BoolType); err != nil {
return err
}
if err := enc.EncodeBool(x.FBool); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.FInt16 != 0 {
if err := enc.NextField("FInt16"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int16Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.FInt16)); 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 *MultiVersionStruct) VDLRead(dec vdl.Decoder) error {
*x = MultiVersionStruct{}
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 "FInt32":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(32)
if err != nil {
return err
}
x.FInt32 = int32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "FRect":
if err := x.FRect.VDLRead(dec); err != nil {
return err
}
case "FString":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.FString, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "FArray":
if err := __VDLReadAnon_list_1(dec, &x.FArray); err != nil {
return err
}
case "FBool":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.FBool, err = dec.DecodeBool(); err != nil {
return err
}
if err := dec.FinishValue(); err != nil {
return err
}
case "FInt16":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(16)
if err != nil {
return err
}
x.FInt16 = int16(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
default:
if err := dec.SkipValue(); err != nil {
return err
}
}
}
}
type MultiVersionStructV3 struct {
FInt32 int32
FRect Rect
FString string
}
func (MultiVersionStructV3) __VDLReflect(struct {
Name string `vdl:"src/v.io/x/mojo/transcoder/testtypes.MultiVersionStructV3"`
}) {
}
func (m *MultiVersionStructV3) FillVDLTarget(t vdl.Target, tt *vdl.Type) error {
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
var4 := (m.FInt32 == int32(0))
if var4 {
if err := fieldsTarget1.ZeroField("FInt32"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("FInt32")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget3.FromInt(int64(m.FInt32), tt.NonOptional().Field(0).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
}
var7 := (m.FRect == Rect{})
if var7 {
if err := fieldsTarget1.ZeroField("FRect"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget5, fieldTarget6, err := fieldsTarget1.StartField("FRect")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := m.FRect.FillVDLTarget(fieldTarget6, tt.NonOptional().Field(1).Type); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget5, fieldTarget6); err != nil {
return err
}
}
}
var10 := (m.FString == "")
if var10 {
if err := fieldsTarget1.ZeroField("FString"); err != nil && err != vdl.ErrFieldNoExist {
return err
}
} else {
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("FString")
if err != vdl.ErrFieldNoExist {
if err != nil {
return err
}
if err := fieldTarget9.FromString(string(m.FString), 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 *MultiVersionStructV3) MakeVDLTarget() vdl.Target {
return &MultiVersionStructV3Target{Value: m}
}
type MultiVersionStructV3Target struct {
Value *MultiVersionStructV3
fInt32Target vdl.Int32Target
fRectTarget RectTarget
fStringTarget vdl.StringTarget
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *MultiVersionStructV3Target) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if ttWant := vdl.TypeOf((*MultiVersionStructV3)(nil)).Elem(); !vdl.Compatible(tt, ttWant) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, ttWant)
}
return t, nil
}
func (t *MultiVersionStructV3Target) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "FInt32":
t.fInt32Target.Value = &t.Value.FInt32
target, err := &t.fInt32Target, error(nil)
return nil, target, err
case "FRect":
t.fRectTarget.Value = &t.Value.FRect
target, err := &t.fRectTarget, error(nil)
return nil, target, err
case "FString":
t.fStringTarget.Value = &t.Value.FString
target, err := &t.fStringTarget, error(nil)
return nil, target, err
default:
return nil, nil, vdl.ErrFieldNoExist
}
}
func (t *MultiVersionStructV3Target) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *MultiVersionStructV3Target) ZeroField(name string) error {
switch name {
case "FInt32":
t.Value.FInt32 = int32(0)
return nil
case "FRect":
t.Value.FRect = Rect{}
return nil
case "FString":
t.Value.FString = ""
return nil
default:
return vdl.ErrFieldNoExist
}
}
func (t *MultiVersionStructV3Target) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func (x MultiVersionStructV3) VDLIsZero() bool {
return x == MultiVersionStructV3{}
}
func (x MultiVersionStructV3) VDLWrite(enc vdl.Encoder) error {
if err := enc.StartValue(vdl.TypeOf((*MultiVersionStructV3)(nil)).Elem()); err != nil {
return err
}
if x.FInt32 != 0 {
if err := enc.NextField("FInt32"); err != nil {
return err
}
if err := enc.StartValue(vdl.Int32Type); err != nil {
return err
}
if err := enc.EncodeInt(int64(x.FInt32)); err != nil {
return err
}
if err := enc.FinishValue(); err != nil {
return err
}
}
if x.FRect != (Rect{}) {
if err := enc.NextField("FRect"); err != nil {
return err
}
if err := x.FRect.VDLWrite(enc); err != nil {
return err
}
}
if x.FString != "" {
if err := enc.NextField("FString"); err != nil {
return err
}
if err := enc.StartValue(vdl.StringType); err != nil {
return err
}
if err := enc.EncodeString(x.FString); 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 *MultiVersionStructV3) VDLRead(dec vdl.Decoder) error {
*x = MultiVersionStructV3{}
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 "FInt32":
if err := dec.StartValue(); err != nil {
return err
}
tmp, err := dec.DecodeInt(32)
if err != nil {
return err
}
x.FInt32 = int32(tmp)
if err := dec.FinishValue(); err != nil {
return err
}
case "FRect":
if err := x.FRect.VDLRead(dec); err != nil {
return err
}
case "FString":
if err := dec.StartValue(); err != nil {
return err
}
var err error
if x.FString, err = dec.DecodeString(); err != nil {
return err
}
if err := dec.FinishValue(); 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((*AnEnum)(nil))
vdl.Register((*PodUnion)(nil))
vdl.Register((*PodUnionWrapper)(nil))
vdl.Register((*DummyStruct)(nil))
vdl.Register((*ObjectUnion)(nil))
vdl.Register((*ObjectUnionWrapper)(nil))
vdl.Register((*Rect)(nil))
vdl.Register((*MultiVersionStruct)(nil))
vdl.Register((*MultiVersionStructV3)(nil))
return struct{}{}
}