blob: 98b717195c2b670beba374b99aecbd36fb139862 [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.
// Source: testcase.vdl
package types
import (
"fmt"
"reflect"
"v.io/v23/vdl"
)
// 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 {
if __VDLType_testcase_v_io_v23_vom_testdata_types_TestCase == nil || __VDLTypetestcase0 == nil {
panic("Initialization order error: types generated for FillVDLTarget not initialized. Consider moving caller to an init() block.")
}
fieldsTarget1, err := t.StartFields(tt)
if err != nil {
return err
}
keyTarget2, fieldTarget3, err := fieldsTarget1.StartField("Name")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := fieldTarget3.FromString(string(m.Name), vdl.StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget2, fieldTarget3); err != nil {
return err
}
}
keyTarget4, fieldTarget5, err := fieldsTarget1.StartField("Value")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if m.Value == nil {
if err := fieldTarget5.FromNil(vdl.AnyType); err != nil {
return err
}
} else {
if err := vdl.FromValue(fieldTarget5, m.Value); err != nil {
return err
}
}
if err := fieldsTarget1.FinishField(keyTarget4, fieldTarget5); err != nil {
return err
}
}
keyTarget6, fieldTarget7, err := fieldsTarget1.StartField("TypeString")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := fieldTarget7.FromString(string(m.TypeString), vdl.StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget6, fieldTarget7); err != nil {
return err
}
}
keyTarget8, fieldTarget9, err := fieldsTarget1.StartField("Hex")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := fieldTarget9.FromString(string(m.Hex), vdl.StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget8, fieldTarget9); err != nil {
return err
}
}
keyTarget10, fieldTarget11, err := fieldsTarget1.StartField("HexVersion")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := fieldTarget11.FromString(string(m.HexVersion), vdl.StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget10, fieldTarget11); err != nil {
return err
}
}
keyTarget12, fieldTarget13, err := fieldsTarget1.StartField("HexType")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := fieldTarget13.FromString(string(m.HexType), vdl.StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget12, fieldTarget13); err != nil {
return err
}
}
keyTarget14, fieldTarget15, err := fieldsTarget1.StartField("HexValue")
if err != vdl.ErrFieldNoExist && err != nil {
return err
}
if err != vdl.ErrFieldNoExist {
if err := fieldTarget15.FromString(string(m.HexValue), vdl.StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget14, fieldTarget15); 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
vdl.TargetBase
vdl.FieldsTargetBase
}
func (t *TestCaseTarget) StartFields(tt *vdl.Type) (vdl.FieldsTarget, error) {
if !vdl.Compatible(tt, __VDLType_testcase_v_io_v23_vom_testdata_types_TestCase) {
return nil, fmt.Errorf("type %v incompatible with %v", tt, __VDLType_testcase_v_io_v23_vom_testdata_types_TestCase)
}
return t, nil
}
func (t *TestCaseTarget) StartField(name string) (key, field vdl.Target, _ error) {
switch name {
case "Name":
val, err := &vdl.StringTarget{Value: &t.Value.Name}, error(nil)
return nil, val, err
case "Value":
val, err := vdl.ReflectTarget(reflect.ValueOf(&t.Value.Value))
return nil, val, err
case "TypeString":
val, err := &vdl.StringTarget{Value: &t.Value.TypeString}, error(nil)
return nil, val, err
case "Hex":
val, err := &vdl.StringTarget{Value: &t.Value.Hex}, error(nil)
return nil, val, err
case "HexVersion":
val, err := &vdl.StringTarget{Value: &t.Value.HexVersion}, error(nil)
return nil, val, err
case "HexType":
val, err := &vdl.StringTarget{Value: &t.Value.HexType}, error(nil)
return nil, val, err
case "HexValue":
val, err := &vdl.StringTarget{Value: &t.Value.HexValue}, error(nil)
return nil, val, err
default:
return nil, nil, fmt.Errorf("field %s not in struct %v", name, __VDLType_testcase_v_io_v23_vom_testdata_types_TestCase)
}
}
func (t *TestCaseTarget) FinishField(_, _ vdl.Target) error {
return nil
}
func (t *TestCaseTarget) FinishFields(_ vdl.FieldsTarget) error {
return nil
}
func init() {
vdl.Register((*TestCase)(nil))
}
var __VDLTypetestcase0 *vdl.Type = vdl.TypeOf((*TestCase)(nil))
var __VDLType_testcase_v_io_v23_vom_testdata_types_TestCase *vdl.Type = vdl.TypeOf(TestCase{})
func __VDLEnsureNativeBuilt_testcase() {
}