blob: 385c37ffcfe0b40db68d7d78f072a5194a313aa2 [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: builtin.vdl
package vdl
import (
// VDL system imports
"fmt"
)
// WireError is the wire representation for the built-in error type. Errors and
// exceptions in each programming environment are converted to this type to
// ensure wire compatibility. Generated code for each environment provides
// automatic conversions into idiomatic native representations.
type WireError struct {
Id string // Error Id, used to uniquely identify each error.
RetryCode WireRetryCode // Retry behavior suggested for the receiver.
Msg string // Error message, may be empty.
ParamList []*Value // Variadic parameters contained in the error.
}
func (WireError) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vdl.WireError"`
}) {
}
func (m *WireError) FillVDLTarget(t Target, tt *Type) error {
if __VDLType_builtin_v_io_v23_vdl_WireError == nil || __VDLTypebuiltin0 == 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
}
var2 := (m.Id == "")
if !var2 {
keyTarget3, fieldTarget4, err := fieldsTarget1.StartField("Id")
if err != ErrFieldNoExist && err != nil {
return err
}
if err != ErrFieldNoExist {
if err := fieldTarget4.FromString(string(m.Id), StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget3, fieldTarget4); err != nil {
return err
}
}
}
var5 := m.RetryCode.IsZero()
if !var5 {
keyTarget6, fieldTarget7, err := fieldsTarget1.StartField("RetryCode")
if err != ErrFieldNoExist && err != nil {
return err
}
if err != ErrFieldNoExist {
if err := m.RetryCode.FillVDLTarget(fieldTarget7, __VDLType_builtin_v_io_v23_vdl_WireRetryCode); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget6, fieldTarget7); err != nil {
return err
}
}
}
var8 := (m.Msg == "")
if !var8 {
keyTarget9, fieldTarget10, err := fieldsTarget1.StartField("Msg")
if err != ErrFieldNoExist && err != nil {
return err
}
if err != ErrFieldNoExist {
if err := fieldTarget10.FromString(string(m.Msg), StringType); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget9, fieldTarget10); err != nil {
return err
}
}
}
var var11 bool
if len(m.ParamList) == 0 {
var11 = true
}
if !var11 {
keyTarget12, fieldTarget13, err := fieldsTarget1.StartField("ParamList")
if err != ErrFieldNoExist && err != nil {
return err
}
if err != ErrFieldNoExist {
listTarget14, err := fieldTarget13.StartList(__VDLTypebuiltin1, len(m.ParamList))
if err != nil {
return err
}
for i, elem16 := range m.ParamList {
elemTarget15, err := listTarget14.StartElem(i)
if err != nil {
return err
}
if elem16 == nil {
if err := elemTarget15.FromNil(AnyType); err != nil {
return err
}
} else {
if err := FromValue(elemTarget15, elem16); err != nil {
return err
}
}
if err := listTarget14.FinishElem(elemTarget15); err != nil {
return err
}
}
if err := fieldTarget13.FinishList(listTarget14); err != nil {
return err
}
if err := fieldsTarget1.FinishField(keyTarget12, fieldTarget13); err != nil {
return err
}
}
}
if err := t.FinishFields(fieldsTarget1); err != nil {
return err
}
return nil
}
func (m *WireError) MakeVDLTarget() Target {
return nil
}
func (m *WireError) IsZero() bool {
var1 := true
var2 := (m.Id == "")
var1 = var1 && var2
var3 := m.RetryCode.IsZero()
var1 = var1 && var3
var4 := (m.Msg == "")
var1 = var1 && var4
var var5 bool
if len(m.ParamList) == 0 {
var5 = true
}
var1 = var1 && var5
return var1
}
// WireRetryCode is the suggested retry behavior for the receiver of an error.
// If the receiver doesn't know how to handle the specific error, it should
// attempt the suggested retry behavior.
type WireRetryCode int
const (
WireRetryCodeNoRetry WireRetryCode = iota
WireRetryCodeRetryConnection
WireRetryCodeRetryRefetch
WireRetryCodeRetryBackoff
)
// WireRetryCodeAll holds all labels for WireRetryCode.
var WireRetryCodeAll = [...]WireRetryCode{WireRetryCodeNoRetry, WireRetryCodeRetryConnection, WireRetryCodeRetryRefetch, WireRetryCodeRetryBackoff}
// WireRetryCodeFromString creates a WireRetryCode from a string label.
func WireRetryCodeFromString(label string) (x WireRetryCode, err error) {
err = x.Set(label)
return
}
// Set assigns label to x.
func (x *WireRetryCode) Set(label string) error {
switch label {
case "NoRetry", "noretry":
*x = WireRetryCodeNoRetry
return nil
case "RetryConnection", "retryconnection":
*x = WireRetryCodeRetryConnection
return nil
case "RetryRefetch", "retryrefetch":
*x = WireRetryCodeRetryRefetch
return nil
case "RetryBackoff", "retrybackoff":
*x = WireRetryCodeRetryBackoff
return nil
}
*x = -1
return fmt.Errorf("unknown label %q in vdl.WireRetryCode", label)
}
// String returns the string label of x.
func (x WireRetryCode) String() string {
switch x {
case WireRetryCodeNoRetry:
return "NoRetry"
case WireRetryCodeRetryConnection:
return "RetryConnection"
case WireRetryCodeRetryRefetch:
return "RetryRefetch"
case WireRetryCodeRetryBackoff:
return "RetryBackoff"
}
return ""
}
func (WireRetryCode) __VDLReflect(struct {
Name string `vdl:"v.io/v23/vdl.WireRetryCode"`
Enum struct{ NoRetry, RetryConnection, RetryRefetch, RetryBackoff string }
}) {
}
func (m WireRetryCode) FillVDLTarget(t Target, tt *Type) error {
if err := t.FromEnumLabel(m.String(), __VDLType_builtin_v_io_v23_vdl_WireRetryCode); err != nil {
return err
}
return nil
}
func (m WireRetryCode) MakeVDLTarget() Target {
return nil
}
func (m WireRetryCode) IsZero() bool {
var1 := (m == WireRetryCodeNoRetry)
return var1
}
func init() {
Register((*WireError)(nil))
Register((*WireRetryCode)(nil))
}
var __VDLTypebuiltin0 *Type = TypeOf((*WireError)(nil))
var __VDLTypebuiltin1 *Type = TypeOf([]*Value(nil))
var __VDLType_builtin_v_io_v23_vdl_WireError *Type = TypeOf(WireError{})
var __VDLType_builtin_v_io_v23_vdl_WireRetryCode *Type = TypeOf(WireRetryCodeNoRetry)
func __VDLEnsureNativeBuilt_builtin() {
}