unknown

package
v0.2.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2022 License: Apache-2.0 Imports: 5 Imported by: 3

Documentation

Overview

Package unknown provides definitions that work with the thriftgo `keep_unknown_fields` option. When the option is turned on, thriftgo generates an extra field `_unknownFields` for each structure defined in the IDL to store fields that are not recognized by the current IDL when deserializing data. Those unknown fields will be written out at the end of the data stream when serializing the structure that carries them.

Index

Constants

View Source
const (
	TStop   = 0
	TVoid   = 1
	TBool   = 2
	TByte   = 3
	TDouble = 4
	TI16    = 6
	TI32    = 8
	TI64    = 10
	TString = 11
	TStruct = 12
	TMap    = 13
	TSet    = 14
	TList   = 15
	TUtf8   = 16
	TUtf16  = 17
)

Type IDs.

Variables

View Source
var (
	ErrExceedDepthLimit = errors.New("depth limit exceeded")

	ErrUnknownType = func(t int) error {
		return fmt.Errorf("unknown data type %d", t)
	}
)

errors .

Functions

func SetNestingDepthLimit

func SetNestingDepthLimit(d int)

SetNestingDepthLimit sets the max number of nesting level.

Types

type Field

type Field struct {
	Name    string
	ID      int16
	Type    int
	KeyType int
	ValType int
	Value   interface{}
}

Field is used to store unrecognized field when deserializing data.

type Fields

type Fields []*Field

Fields is a list of Field.

func (*Fields) Append

func (fs *Fields) Append(xprot TProtocol, name string, fieldType TType, id int16) error

Append reads an unrecognized field and append it to the current slice.

func (*Fields) Write

func (fs *Fields) Write(xprot TProtocol) (err error)

Write writes out the unknown fields.

type TProtocol added in v0.2.0

type TProtocol interface{}

TProtocol is supposed to have methods that a thrift.TProtocol requires.

type TType added in v0.2.0

type TType interface{}

TType is supposed to be an integer.

type WithUnknownFields

type WithUnknownFields interface {
	// CarryingUnknownFields tells whether the structure contains data from fields not recognized by the current IDL.
	CarryingUnknownFields() bool
}

WithUnknownFields is the interface of all structures that supports keeping unknown fields.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL