forked from mirror/go-json
1123 lines
44 KiB
Go
1123 lines
44 KiB
Go
// Code generated by cmd/generator. DO NOT EDIT!
|
|
package json
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
type codeType int
|
|
|
|
const (
|
|
codeOp codeType = 0
|
|
codeArrayHead codeType = 1
|
|
codeArrayElem codeType = 2
|
|
codeSliceHead codeType = 3
|
|
codeSliceElem codeType = 4
|
|
codeMapHead codeType = 5
|
|
codeMapKey codeType = 6
|
|
codeMapValue codeType = 7
|
|
codeMapEnd codeType = 8
|
|
codeStructFieldRecursive codeType = 9
|
|
codeStructField codeType = 10
|
|
codeStructEnd codeType = 11
|
|
)
|
|
|
|
var opTypeStrings = [417]string{
|
|
"End",
|
|
"Interface",
|
|
"Ptr",
|
|
"RootSliceHead",
|
|
"SliceElem",
|
|
"RootSliceElem",
|
|
"SliceEnd",
|
|
"ArrayElem",
|
|
"ArrayEnd",
|
|
"MapHeadLoad",
|
|
"MapKey",
|
|
"MapValue",
|
|
"MapEnd",
|
|
"StructFieldRecursiveEnd",
|
|
"StructAnonymousEnd",
|
|
"Int",
|
|
"Uint",
|
|
"Float32",
|
|
"Float64",
|
|
"Bool",
|
|
"String",
|
|
"Bytes",
|
|
"Array",
|
|
"Map",
|
|
"MapLoad",
|
|
"Slice",
|
|
"Struct",
|
|
"MarshalJSON",
|
|
"MarshalText",
|
|
"Recursive",
|
|
"IntString",
|
|
"UintString",
|
|
"IntPtr",
|
|
"UintPtr",
|
|
"Float32Ptr",
|
|
"Float64Ptr",
|
|
"BoolPtr",
|
|
"StringPtr",
|
|
"BytesPtr",
|
|
"ArrayPtr",
|
|
"SlicePtr",
|
|
"MapPtr",
|
|
"MarshalJSONPtr",
|
|
"MarshalTextPtr",
|
|
"InterfacePtr",
|
|
"StructFieldHeadInt",
|
|
"StructFieldHeadOmitEmptyInt",
|
|
"StructFieldHeadStringTagInt",
|
|
"StructFieldPtrHeadInt",
|
|
"StructFieldPtrHeadOmitEmptyInt",
|
|
"StructFieldPtrHeadStringTagInt",
|
|
"StructFieldHeadUint",
|
|
"StructFieldHeadOmitEmptyUint",
|
|
"StructFieldHeadStringTagUint",
|
|
"StructFieldPtrHeadUint",
|
|
"StructFieldPtrHeadOmitEmptyUint",
|
|
"StructFieldPtrHeadStringTagUint",
|
|
"StructFieldHeadFloat32",
|
|
"StructFieldHeadOmitEmptyFloat32",
|
|
"StructFieldHeadStringTagFloat32",
|
|
"StructFieldPtrHeadFloat32",
|
|
"StructFieldPtrHeadOmitEmptyFloat32",
|
|
"StructFieldPtrHeadStringTagFloat32",
|
|
"StructFieldHeadFloat64",
|
|
"StructFieldHeadOmitEmptyFloat64",
|
|
"StructFieldHeadStringTagFloat64",
|
|
"StructFieldPtrHeadFloat64",
|
|
"StructFieldPtrHeadOmitEmptyFloat64",
|
|
"StructFieldPtrHeadStringTagFloat64",
|
|
"StructFieldHeadBool",
|
|
"StructFieldHeadOmitEmptyBool",
|
|
"StructFieldHeadStringTagBool",
|
|
"StructFieldPtrHeadBool",
|
|
"StructFieldPtrHeadOmitEmptyBool",
|
|
"StructFieldPtrHeadStringTagBool",
|
|
"StructFieldHeadString",
|
|
"StructFieldHeadOmitEmptyString",
|
|
"StructFieldHeadStringTagString",
|
|
"StructFieldPtrHeadString",
|
|
"StructFieldPtrHeadOmitEmptyString",
|
|
"StructFieldPtrHeadStringTagString",
|
|
"StructFieldHeadBytes",
|
|
"StructFieldHeadOmitEmptyBytes",
|
|
"StructFieldHeadStringTagBytes",
|
|
"StructFieldPtrHeadBytes",
|
|
"StructFieldPtrHeadOmitEmptyBytes",
|
|
"StructFieldPtrHeadStringTagBytes",
|
|
"StructFieldHeadArray",
|
|
"StructFieldHeadOmitEmptyArray",
|
|
"StructFieldHeadStringTagArray",
|
|
"StructFieldPtrHeadArray",
|
|
"StructFieldPtrHeadOmitEmptyArray",
|
|
"StructFieldPtrHeadStringTagArray",
|
|
"StructFieldHeadMap",
|
|
"StructFieldHeadOmitEmptyMap",
|
|
"StructFieldHeadStringTagMap",
|
|
"StructFieldPtrHeadMap",
|
|
"StructFieldPtrHeadOmitEmptyMap",
|
|
"StructFieldPtrHeadStringTagMap",
|
|
"StructFieldHeadMapLoad",
|
|
"StructFieldHeadOmitEmptyMapLoad",
|
|
"StructFieldHeadStringTagMapLoad",
|
|
"StructFieldPtrHeadMapLoad",
|
|
"StructFieldPtrHeadOmitEmptyMapLoad",
|
|
"StructFieldPtrHeadStringTagMapLoad",
|
|
"StructFieldHeadSlice",
|
|
"StructFieldHeadOmitEmptySlice",
|
|
"StructFieldHeadStringTagSlice",
|
|
"StructFieldPtrHeadSlice",
|
|
"StructFieldPtrHeadOmitEmptySlice",
|
|
"StructFieldPtrHeadStringTagSlice",
|
|
"StructFieldHeadStruct",
|
|
"StructFieldHeadOmitEmptyStruct",
|
|
"StructFieldHeadStringTagStruct",
|
|
"StructFieldPtrHeadStruct",
|
|
"StructFieldPtrHeadOmitEmptyStruct",
|
|
"StructFieldPtrHeadStringTagStruct",
|
|
"StructFieldHeadMarshalJSON",
|
|
"StructFieldHeadOmitEmptyMarshalJSON",
|
|
"StructFieldHeadStringTagMarshalJSON",
|
|
"StructFieldPtrHeadMarshalJSON",
|
|
"StructFieldPtrHeadOmitEmptyMarshalJSON",
|
|
"StructFieldPtrHeadStringTagMarshalJSON",
|
|
"StructFieldHeadMarshalText",
|
|
"StructFieldHeadOmitEmptyMarshalText",
|
|
"StructFieldHeadStringTagMarshalText",
|
|
"StructFieldPtrHeadMarshalText",
|
|
"StructFieldPtrHeadOmitEmptyMarshalText",
|
|
"StructFieldPtrHeadStringTagMarshalText",
|
|
"StructFieldHeadRecursive",
|
|
"StructFieldHeadOmitEmptyRecursive",
|
|
"StructFieldHeadStringTagRecursive",
|
|
"StructFieldPtrHeadRecursive",
|
|
"StructFieldPtrHeadOmitEmptyRecursive",
|
|
"StructFieldPtrHeadStringTagRecursive",
|
|
"StructFieldHeadIntString",
|
|
"StructFieldHeadOmitEmptyIntString",
|
|
"StructFieldHeadStringTagIntString",
|
|
"StructFieldPtrHeadIntString",
|
|
"StructFieldPtrHeadOmitEmptyIntString",
|
|
"StructFieldPtrHeadStringTagIntString",
|
|
"StructFieldHeadUintString",
|
|
"StructFieldHeadOmitEmptyUintString",
|
|
"StructFieldHeadStringTagUintString",
|
|
"StructFieldPtrHeadUintString",
|
|
"StructFieldPtrHeadOmitEmptyUintString",
|
|
"StructFieldPtrHeadStringTagUintString",
|
|
"StructFieldHeadIntPtr",
|
|
"StructFieldHeadOmitEmptyIntPtr",
|
|
"StructFieldHeadStringTagIntPtr",
|
|
"StructFieldPtrHeadIntPtr",
|
|
"StructFieldPtrHeadOmitEmptyIntPtr",
|
|
"StructFieldPtrHeadStringTagIntPtr",
|
|
"StructFieldHeadUintPtr",
|
|
"StructFieldHeadOmitEmptyUintPtr",
|
|
"StructFieldHeadStringTagUintPtr",
|
|
"StructFieldPtrHeadUintPtr",
|
|
"StructFieldPtrHeadOmitEmptyUintPtr",
|
|
"StructFieldPtrHeadStringTagUintPtr",
|
|
"StructFieldHeadFloat32Ptr",
|
|
"StructFieldHeadOmitEmptyFloat32Ptr",
|
|
"StructFieldHeadStringTagFloat32Ptr",
|
|
"StructFieldPtrHeadFloat32Ptr",
|
|
"StructFieldPtrHeadOmitEmptyFloat32Ptr",
|
|
"StructFieldPtrHeadStringTagFloat32Ptr",
|
|
"StructFieldHeadFloat64Ptr",
|
|
"StructFieldHeadOmitEmptyFloat64Ptr",
|
|
"StructFieldHeadStringTagFloat64Ptr",
|
|
"StructFieldPtrHeadFloat64Ptr",
|
|
"StructFieldPtrHeadOmitEmptyFloat64Ptr",
|
|
"StructFieldPtrHeadStringTagFloat64Ptr",
|
|
"StructFieldHeadBoolPtr",
|
|
"StructFieldHeadOmitEmptyBoolPtr",
|
|
"StructFieldHeadStringTagBoolPtr",
|
|
"StructFieldPtrHeadBoolPtr",
|
|
"StructFieldPtrHeadOmitEmptyBoolPtr",
|
|
"StructFieldPtrHeadStringTagBoolPtr",
|
|
"StructFieldHeadStringPtr",
|
|
"StructFieldHeadOmitEmptyStringPtr",
|
|
"StructFieldHeadStringTagStringPtr",
|
|
"StructFieldPtrHeadStringPtr",
|
|
"StructFieldPtrHeadOmitEmptyStringPtr",
|
|
"StructFieldPtrHeadStringTagStringPtr",
|
|
"StructFieldHeadBytesPtr",
|
|
"StructFieldHeadOmitEmptyBytesPtr",
|
|
"StructFieldHeadStringTagBytesPtr",
|
|
"StructFieldPtrHeadBytesPtr",
|
|
"StructFieldPtrHeadOmitEmptyBytesPtr",
|
|
"StructFieldPtrHeadStringTagBytesPtr",
|
|
"StructFieldHeadArrayPtr",
|
|
"StructFieldHeadOmitEmptyArrayPtr",
|
|
"StructFieldHeadStringTagArrayPtr",
|
|
"StructFieldPtrHeadArrayPtr",
|
|
"StructFieldPtrHeadOmitEmptyArrayPtr",
|
|
"StructFieldPtrHeadStringTagArrayPtr",
|
|
"StructFieldHeadSlicePtr",
|
|
"StructFieldHeadOmitEmptySlicePtr",
|
|
"StructFieldHeadStringTagSlicePtr",
|
|
"StructFieldPtrHeadSlicePtr",
|
|
"StructFieldPtrHeadOmitEmptySlicePtr",
|
|
"StructFieldPtrHeadStringTagSlicePtr",
|
|
"StructFieldHeadMapPtr",
|
|
"StructFieldHeadOmitEmptyMapPtr",
|
|
"StructFieldHeadStringTagMapPtr",
|
|
"StructFieldPtrHeadMapPtr",
|
|
"StructFieldPtrHeadOmitEmptyMapPtr",
|
|
"StructFieldPtrHeadStringTagMapPtr",
|
|
"StructFieldHeadMarshalJSONPtr",
|
|
"StructFieldHeadOmitEmptyMarshalJSONPtr",
|
|
"StructFieldHeadStringTagMarshalJSONPtr",
|
|
"StructFieldPtrHeadMarshalJSONPtr",
|
|
"StructFieldPtrHeadOmitEmptyMarshalJSONPtr",
|
|
"StructFieldPtrHeadStringTagMarshalJSONPtr",
|
|
"StructFieldHeadMarshalTextPtr",
|
|
"StructFieldHeadOmitEmptyMarshalTextPtr",
|
|
"StructFieldHeadStringTagMarshalTextPtr",
|
|
"StructFieldPtrHeadMarshalTextPtr",
|
|
"StructFieldPtrHeadOmitEmptyMarshalTextPtr",
|
|
"StructFieldPtrHeadStringTagMarshalTextPtr",
|
|
"StructFieldHeadInterfacePtr",
|
|
"StructFieldHeadOmitEmptyInterfacePtr",
|
|
"StructFieldHeadStringTagInterfacePtr",
|
|
"StructFieldPtrHeadInterfacePtr",
|
|
"StructFieldPtrHeadOmitEmptyInterfacePtr",
|
|
"StructFieldPtrHeadStringTagInterfacePtr",
|
|
"StructFieldHead",
|
|
"StructFieldHeadOmitEmpty",
|
|
"StructFieldHeadStringTag",
|
|
"StructFieldPtrHead",
|
|
"StructFieldPtrHeadOmitEmpty",
|
|
"StructFieldPtrHeadStringTag",
|
|
"StructFieldInt",
|
|
"StructFieldOmitEmptyInt",
|
|
"StructFieldStringTagInt",
|
|
"StructFieldUint",
|
|
"StructFieldOmitEmptyUint",
|
|
"StructFieldStringTagUint",
|
|
"StructFieldFloat32",
|
|
"StructFieldOmitEmptyFloat32",
|
|
"StructFieldStringTagFloat32",
|
|
"StructFieldFloat64",
|
|
"StructFieldOmitEmptyFloat64",
|
|
"StructFieldStringTagFloat64",
|
|
"StructFieldBool",
|
|
"StructFieldOmitEmptyBool",
|
|
"StructFieldStringTagBool",
|
|
"StructFieldString",
|
|
"StructFieldOmitEmptyString",
|
|
"StructFieldStringTagString",
|
|
"StructFieldBytes",
|
|
"StructFieldOmitEmptyBytes",
|
|
"StructFieldStringTagBytes",
|
|
"StructFieldArray",
|
|
"StructFieldOmitEmptyArray",
|
|
"StructFieldStringTagArray",
|
|
"StructFieldMap",
|
|
"StructFieldOmitEmptyMap",
|
|
"StructFieldStringTagMap",
|
|
"StructFieldMapLoad",
|
|
"StructFieldOmitEmptyMapLoad",
|
|
"StructFieldStringTagMapLoad",
|
|
"StructFieldSlice",
|
|
"StructFieldOmitEmptySlice",
|
|
"StructFieldStringTagSlice",
|
|
"StructFieldStruct",
|
|
"StructFieldOmitEmptyStruct",
|
|
"StructFieldStringTagStruct",
|
|
"StructFieldMarshalJSON",
|
|
"StructFieldOmitEmptyMarshalJSON",
|
|
"StructFieldStringTagMarshalJSON",
|
|
"StructFieldMarshalText",
|
|
"StructFieldOmitEmptyMarshalText",
|
|
"StructFieldStringTagMarshalText",
|
|
"StructFieldRecursive",
|
|
"StructFieldOmitEmptyRecursive",
|
|
"StructFieldStringTagRecursive",
|
|
"StructFieldIntString",
|
|
"StructFieldOmitEmptyIntString",
|
|
"StructFieldStringTagIntString",
|
|
"StructFieldUintString",
|
|
"StructFieldOmitEmptyUintString",
|
|
"StructFieldStringTagUintString",
|
|
"StructFieldIntPtr",
|
|
"StructFieldOmitEmptyIntPtr",
|
|
"StructFieldStringTagIntPtr",
|
|
"StructFieldUintPtr",
|
|
"StructFieldOmitEmptyUintPtr",
|
|
"StructFieldStringTagUintPtr",
|
|
"StructFieldFloat32Ptr",
|
|
"StructFieldOmitEmptyFloat32Ptr",
|
|
"StructFieldStringTagFloat32Ptr",
|
|
"StructFieldFloat64Ptr",
|
|
"StructFieldOmitEmptyFloat64Ptr",
|
|
"StructFieldStringTagFloat64Ptr",
|
|
"StructFieldBoolPtr",
|
|
"StructFieldOmitEmptyBoolPtr",
|
|
"StructFieldStringTagBoolPtr",
|
|
"StructFieldStringPtr",
|
|
"StructFieldOmitEmptyStringPtr",
|
|
"StructFieldStringTagStringPtr",
|
|
"StructFieldBytesPtr",
|
|
"StructFieldOmitEmptyBytesPtr",
|
|
"StructFieldStringTagBytesPtr",
|
|
"StructFieldArrayPtr",
|
|
"StructFieldOmitEmptyArrayPtr",
|
|
"StructFieldStringTagArrayPtr",
|
|
"StructFieldSlicePtr",
|
|
"StructFieldOmitEmptySlicePtr",
|
|
"StructFieldStringTagSlicePtr",
|
|
"StructFieldMapPtr",
|
|
"StructFieldOmitEmptyMapPtr",
|
|
"StructFieldStringTagMapPtr",
|
|
"StructFieldMarshalJSONPtr",
|
|
"StructFieldOmitEmptyMarshalJSONPtr",
|
|
"StructFieldStringTagMarshalJSONPtr",
|
|
"StructFieldMarshalTextPtr",
|
|
"StructFieldOmitEmptyMarshalTextPtr",
|
|
"StructFieldStringTagMarshalTextPtr",
|
|
"StructFieldInterfacePtr",
|
|
"StructFieldOmitEmptyInterfacePtr",
|
|
"StructFieldStringTagInterfacePtr",
|
|
"StructField",
|
|
"StructFieldOmitEmpty",
|
|
"StructFieldStringTag",
|
|
"StructEndInt",
|
|
"StructEndOmitEmptyInt",
|
|
"StructEndStringTagInt",
|
|
"StructEndUint",
|
|
"StructEndOmitEmptyUint",
|
|
"StructEndStringTagUint",
|
|
"StructEndFloat32",
|
|
"StructEndOmitEmptyFloat32",
|
|
"StructEndStringTagFloat32",
|
|
"StructEndFloat64",
|
|
"StructEndOmitEmptyFloat64",
|
|
"StructEndStringTagFloat64",
|
|
"StructEndBool",
|
|
"StructEndOmitEmptyBool",
|
|
"StructEndStringTagBool",
|
|
"StructEndString",
|
|
"StructEndOmitEmptyString",
|
|
"StructEndStringTagString",
|
|
"StructEndBytes",
|
|
"StructEndOmitEmptyBytes",
|
|
"StructEndStringTagBytes",
|
|
"StructEndArray",
|
|
"StructEndOmitEmptyArray",
|
|
"StructEndStringTagArray",
|
|
"StructEndMap",
|
|
"StructEndOmitEmptyMap",
|
|
"StructEndStringTagMap",
|
|
"StructEndMapLoad",
|
|
"StructEndOmitEmptyMapLoad",
|
|
"StructEndStringTagMapLoad",
|
|
"StructEndSlice",
|
|
"StructEndOmitEmptySlice",
|
|
"StructEndStringTagSlice",
|
|
"StructEndStruct",
|
|
"StructEndOmitEmptyStruct",
|
|
"StructEndStringTagStruct",
|
|
"StructEndMarshalJSON",
|
|
"StructEndOmitEmptyMarshalJSON",
|
|
"StructEndStringTagMarshalJSON",
|
|
"StructEndMarshalText",
|
|
"StructEndOmitEmptyMarshalText",
|
|
"StructEndStringTagMarshalText",
|
|
"StructEndRecursive",
|
|
"StructEndOmitEmptyRecursive",
|
|
"StructEndStringTagRecursive",
|
|
"StructEndIntString",
|
|
"StructEndOmitEmptyIntString",
|
|
"StructEndStringTagIntString",
|
|
"StructEndUintString",
|
|
"StructEndOmitEmptyUintString",
|
|
"StructEndStringTagUintString",
|
|
"StructEndIntPtr",
|
|
"StructEndOmitEmptyIntPtr",
|
|
"StructEndStringTagIntPtr",
|
|
"StructEndUintPtr",
|
|
"StructEndOmitEmptyUintPtr",
|
|
"StructEndStringTagUintPtr",
|
|
"StructEndFloat32Ptr",
|
|
"StructEndOmitEmptyFloat32Ptr",
|
|
"StructEndStringTagFloat32Ptr",
|
|
"StructEndFloat64Ptr",
|
|
"StructEndOmitEmptyFloat64Ptr",
|
|
"StructEndStringTagFloat64Ptr",
|
|
"StructEndBoolPtr",
|
|
"StructEndOmitEmptyBoolPtr",
|
|
"StructEndStringTagBoolPtr",
|
|
"StructEndStringPtr",
|
|
"StructEndOmitEmptyStringPtr",
|
|
"StructEndStringTagStringPtr",
|
|
"StructEndBytesPtr",
|
|
"StructEndOmitEmptyBytesPtr",
|
|
"StructEndStringTagBytesPtr",
|
|
"StructEndArrayPtr",
|
|
"StructEndOmitEmptyArrayPtr",
|
|
"StructEndStringTagArrayPtr",
|
|
"StructEndSlicePtr",
|
|
"StructEndOmitEmptySlicePtr",
|
|
"StructEndStringTagSlicePtr",
|
|
"StructEndMapPtr",
|
|
"StructEndOmitEmptyMapPtr",
|
|
"StructEndStringTagMapPtr",
|
|
"StructEndMarshalJSONPtr",
|
|
"StructEndOmitEmptyMarshalJSONPtr",
|
|
"StructEndStringTagMarshalJSONPtr",
|
|
"StructEndMarshalTextPtr",
|
|
"StructEndOmitEmptyMarshalTextPtr",
|
|
"StructEndStringTagMarshalTextPtr",
|
|
"StructEndInterfacePtr",
|
|
"StructEndOmitEmptyInterfacePtr",
|
|
"StructEndStringTagInterfacePtr",
|
|
"StructEnd",
|
|
"StructEndOmitEmpty",
|
|
"StructEndStringTag",
|
|
}
|
|
|
|
type opType int
|
|
|
|
const (
|
|
opEnd opType = 0
|
|
opInterface opType = 1
|
|
opPtr opType = 2
|
|
opRootSliceHead opType = 3
|
|
opSliceElem opType = 4
|
|
opRootSliceElem opType = 5
|
|
opSliceEnd opType = 6
|
|
opArrayElem opType = 7
|
|
opArrayEnd opType = 8
|
|
opMapHeadLoad opType = 9
|
|
opMapKey opType = 10
|
|
opMapValue opType = 11
|
|
opMapEnd opType = 12
|
|
opStructFieldRecursiveEnd opType = 13
|
|
opStructAnonymousEnd opType = 14
|
|
opInt opType = 15
|
|
opUint opType = 16
|
|
opFloat32 opType = 17
|
|
opFloat64 opType = 18
|
|
opBool opType = 19
|
|
opString opType = 20
|
|
opBytes opType = 21
|
|
opArray opType = 22
|
|
opMap opType = 23
|
|
opMapLoad opType = 24
|
|
opSlice opType = 25
|
|
opStruct opType = 26
|
|
opMarshalJSON opType = 27
|
|
opMarshalText opType = 28
|
|
opRecursive opType = 29
|
|
opIntString opType = 30
|
|
opUintString opType = 31
|
|
opIntPtr opType = 32
|
|
opUintPtr opType = 33
|
|
opFloat32Ptr opType = 34
|
|
opFloat64Ptr opType = 35
|
|
opBoolPtr opType = 36
|
|
opStringPtr opType = 37
|
|
opBytesPtr opType = 38
|
|
opArrayPtr opType = 39
|
|
opSlicePtr opType = 40
|
|
opMapPtr opType = 41
|
|
opMarshalJSONPtr opType = 42
|
|
opMarshalTextPtr opType = 43
|
|
opInterfacePtr opType = 44
|
|
opStructFieldHeadInt opType = 45
|
|
opStructFieldHeadOmitEmptyInt opType = 46
|
|
opStructFieldHeadStringTagInt opType = 47
|
|
opStructFieldPtrHeadInt opType = 48
|
|
opStructFieldPtrHeadOmitEmptyInt opType = 49
|
|
opStructFieldPtrHeadStringTagInt opType = 50
|
|
opStructFieldHeadUint opType = 51
|
|
opStructFieldHeadOmitEmptyUint opType = 52
|
|
opStructFieldHeadStringTagUint opType = 53
|
|
opStructFieldPtrHeadUint opType = 54
|
|
opStructFieldPtrHeadOmitEmptyUint opType = 55
|
|
opStructFieldPtrHeadStringTagUint opType = 56
|
|
opStructFieldHeadFloat32 opType = 57
|
|
opStructFieldHeadOmitEmptyFloat32 opType = 58
|
|
opStructFieldHeadStringTagFloat32 opType = 59
|
|
opStructFieldPtrHeadFloat32 opType = 60
|
|
opStructFieldPtrHeadOmitEmptyFloat32 opType = 61
|
|
opStructFieldPtrHeadStringTagFloat32 opType = 62
|
|
opStructFieldHeadFloat64 opType = 63
|
|
opStructFieldHeadOmitEmptyFloat64 opType = 64
|
|
opStructFieldHeadStringTagFloat64 opType = 65
|
|
opStructFieldPtrHeadFloat64 opType = 66
|
|
opStructFieldPtrHeadOmitEmptyFloat64 opType = 67
|
|
opStructFieldPtrHeadStringTagFloat64 opType = 68
|
|
opStructFieldHeadBool opType = 69
|
|
opStructFieldHeadOmitEmptyBool opType = 70
|
|
opStructFieldHeadStringTagBool opType = 71
|
|
opStructFieldPtrHeadBool opType = 72
|
|
opStructFieldPtrHeadOmitEmptyBool opType = 73
|
|
opStructFieldPtrHeadStringTagBool opType = 74
|
|
opStructFieldHeadString opType = 75
|
|
opStructFieldHeadOmitEmptyString opType = 76
|
|
opStructFieldHeadStringTagString opType = 77
|
|
opStructFieldPtrHeadString opType = 78
|
|
opStructFieldPtrHeadOmitEmptyString opType = 79
|
|
opStructFieldPtrHeadStringTagString opType = 80
|
|
opStructFieldHeadBytes opType = 81
|
|
opStructFieldHeadOmitEmptyBytes opType = 82
|
|
opStructFieldHeadStringTagBytes opType = 83
|
|
opStructFieldPtrHeadBytes opType = 84
|
|
opStructFieldPtrHeadOmitEmptyBytes opType = 85
|
|
opStructFieldPtrHeadStringTagBytes opType = 86
|
|
opStructFieldHeadArray opType = 87
|
|
opStructFieldHeadOmitEmptyArray opType = 88
|
|
opStructFieldHeadStringTagArray opType = 89
|
|
opStructFieldPtrHeadArray opType = 90
|
|
opStructFieldPtrHeadOmitEmptyArray opType = 91
|
|
opStructFieldPtrHeadStringTagArray opType = 92
|
|
opStructFieldHeadMap opType = 93
|
|
opStructFieldHeadOmitEmptyMap opType = 94
|
|
opStructFieldHeadStringTagMap opType = 95
|
|
opStructFieldPtrHeadMap opType = 96
|
|
opStructFieldPtrHeadOmitEmptyMap opType = 97
|
|
opStructFieldPtrHeadStringTagMap opType = 98
|
|
opStructFieldHeadMapLoad opType = 99
|
|
opStructFieldHeadOmitEmptyMapLoad opType = 100
|
|
opStructFieldHeadStringTagMapLoad opType = 101
|
|
opStructFieldPtrHeadMapLoad opType = 102
|
|
opStructFieldPtrHeadOmitEmptyMapLoad opType = 103
|
|
opStructFieldPtrHeadStringTagMapLoad opType = 104
|
|
opStructFieldHeadSlice opType = 105
|
|
opStructFieldHeadOmitEmptySlice opType = 106
|
|
opStructFieldHeadStringTagSlice opType = 107
|
|
opStructFieldPtrHeadSlice opType = 108
|
|
opStructFieldPtrHeadOmitEmptySlice opType = 109
|
|
opStructFieldPtrHeadStringTagSlice opType = 110
|
|
opStructFieldHeadStruct opType = 111
|
|
opStructFieldHeadOmitEmptyStruct opType = 112
|
|
opStructFieldHeadStringTagStruct opType = 113
|
|
opStructFieldPtrHeadStruct opType = 114
|
|
opStructFieldPtrHeadOmitEmptyStruct opType = 115
|
|
opStructFieldPtrHeadStringTagStruct opType = 116
|
|
opStructFieldHeadMarshalJSON opType = 117
|
|
opStructFieldHeadOmitEmptyMarshalJSON opType = 118
|
|
opStructFieldHeadStringTagMarshalJSON opType = 119
|
|
opStructFieldPtrHeadMarshalJSON opType = 120
|
|
opStructFieldPtrHeadOmitEmptyMarshalJSON opType = 121
|
|
opStructFieldPtrHeadStringTagMarshalJSON opType = 122
|
|
opStructFieldHeadMarshalText opType = 123
|
|
opStructFieldHeadOmitEmptyMarshalText opType = 124
|
|
opStructFieldHeadStringTagMarshalText opType = 125
|
|
opStructFieldPtrHeadMarshalText opType = 126
|
|
opStructFieldPtrHeadOmitEmptyMarshalText opType = 127
|
|
opStructFieldPtrHeadStringTagMarshalText opType = 128
|
|
opStructFieldHeadRecursive opType = 129
|
|
opStructFieldHeadOmitEmptyRecursive opType = 130
|
|
opStructFieldHeadStringTagRecursive opType = 131
|
|
opStructFieldPtrHeadRecursive opType = 132
|
|
opStructFieldPtrHeadOmitEmptyRecursive opType = 133
|
|
opStructFieldPtrHeadStringTagRecursive opType = 134
|
|
opStructFieldHeadIntString opType = 135
|
|
opStructFieldHeadOmitEmptyIntString opType = 136
|
|
opStructFieldHeadStringTagIntString opType = 137
|
|
opStructFieldPtrHeadIntString opType = 138
|
|
opStructFieldPtrHeadOmitEmptyIntString opType = 139
|
|
opStructFieldPtrHeadStringTagIntString opType = 140
|
|
opStructFieldHeadUintString opType = 141
|
|
opStructFieldHeadOmitEmptyUintString opType = 142
|
|
opStructFieldHeadStringTagUintString opType = 143
|
|
opStructFieldPtrHeadUintString opType = 144
|
|
opStructFieldPtrHeadOmitEmptyUintString opType = 145
|
|
opStructFieldPtrHeadStringTagUintString opType = 146
|
|
opStructFieldHeadIntPtr opType = 147
|
|
opStructFieldHeadOmitEmptyIntPtr opType = 148
|
|
opStructFieldHeadStringTagIntPtr opType = 149
|
|
opStructFieldPtrHeadIntPtr opType = 150
|
|
opStructFieldPtrHeadOmitEmptyIntPtr opType = 151
|
|
opStructFieldPtrHeadStringTagIntPtr opType = 152
|
|
opStructFieldHeadUintPtr opType = 153
|
|
opStructFieldHeadOmitEmptyUintPtr opType = 154
|
|
opStructFieldHeadStringTagUintPtr opType = 155
|
|
opStructFieldPtrHeadUintPtr opType = 156
|
|
opStructFieldPtrHeadOmitEmptyUintPtr opType = 157
|
|
opStructFieldPtrHeadStringTagUintPtr opType = 158
|
|
opStructFieldHeadFloat32Ptr opType = 159
|
|
opStructFieldHeadOmitEmptyFloat32Ptr opType = 160
|
|
opStructFieldHeadStringTagFloat32Ptr opType = 161
|
|
opStructFieldPtrHeadFloat32Ptr opType = 162
|
|
opStructFieldPtrHeadOmitEmptyFloat32Ptr opType = 163
|
|
opStructFieldPtrHeadStringTagFloat32Ptr opType = 164
|
|
opStructFieldHeadFloat64Ptr opType = 165
|
|
opStructFieldHeadOmitEmptyFloat64Ptr opType = 166
|
|
opStructFieldHeadStringTagFloat64Ptr opType = 167
|
|
opStructFieldPtrHeadFloat64Ptr opType = 168
|
|
opStructFieldPtrHeadOmitEmptyFloat64Ptr opType = 169
|
|
opStructFieldPtrHeadStringTagFloat64Ptr opType = 170
|
|
opStructFieldHeadBoolPtr opType = 171
|
|
opStructFieldHeadOmitEmptyBoolPtr opType = 172
|
|
opStructFieldHeadStringTagBoolPtr opType = 173
|
|
opStructFieldPtrHeadBoolPtr opType = 174
|
|
opStructFieldPtrHeadOmitEmptyBoolPtr opType = 175
|
|
opStructFieldPtrHeadStringTagBoolPtr opType = 176
|
|
opStructFieldHeadStringPtr opType = 177
|
|
opStructFieldHeadOmitEmptyStringPtr opType = 178
|
|
opStructFieldHeadStringTagStringPtr opType = 179
|
|
opStructFieldPtrHeadStringPtr opType = 180
|
|
opStructFieldPtrHeadOmitEmptyStringPtr opType = 181
|
|
opStructFieldPtrHeadStringTagStringPtr opType = 182
|
|
opStructFieldHeadBytesPtr opType = 183
|
|
opStructFieldHeadOmitEmptyBytesPtr opType = 184
|
|
opStructFieldHeadStringTagBytesPtr opType = 185
|
|
opStructFieldPtrHeadBytesPtr opType = 186
|
|
opStructFieldPtrHeadOmitEmptyBytesPtr opType = 187
|
|
opStructFieldPtrHeadStringTagBytesPtr opType = 188
|
|
opStructFieldHeadArrayPtr opType = 189
|
|
opStructFieldHeadOmitEmptyArrayPtr opType = 190
|
|
opStructFieldHeadStringTagArrayPtr opType = 191
|
|
opStructFieldPtrHeadArrayPtr opType = 192
|
|
opStructFieldPtrHeadOmitEmptyArrayPtr opType = 193
|
|
opStructFieldPtrHeadStringTagArrayPtr opType = 194
|
|
opStructFieldHeadSlicePtr opType = 195
|
|
opStructFieldHeadOmitEmptySlicePtr opType = 196
|
|
opStructFieldHeadStringTagSlicePtr opType = 197
|
|
opStructFieldPtrHeadSlicePtr opType = 198
|
|
opStructFieldPtrHeadOmitEmptySlicePtr opType = 199
|
|
opStructFieldPtrHeadStringTagSlicePtr opType = 200
|
|
opStructFieldHeadMapPtr opType = 201
|
|
opStructFieldHeadOmitEmptyMapPtr opType = 202
|
|
opStructFieldHeadStringTagMapPtr opType = 203
|
|
opStructFieldPtrHeadMapPtr opType = 204
|
|
opStructFieldPtrHeadOmitEmptyMapPtr opType = 205
|
|
opStructFieldPtrHeadStringTagMapPtr opType = 206
|
|
opStructFieldHeadMarshalJSONPtr opType = 207
|
|
opStructFieldHeadOmitEmptyMarshalJSONPtr opType = 208
|
|
opStructFieldHeadStringTagMarshalJSONPtr opType = 209
|
|
opStructFieldPtrHeadMarshalJSONPtr opType = 210
|
|
opStructFieldPtrHeadOmitEmptyMarshalJSONPtr opType = 211
|
|
opStructFieldPtrHeadStringTagMarshalJSONPtr opType = 212
|
|
opStructFieldHeadMarshalTextPtr opType = 213
|
|
opStructFieldHeadOmitEmptyMarshalTextPtr opType = 214
|
|
opStructFieldHeadStringTagMarshalTextPtr opType = 215
|
|
opStructFieldPtrHeadMarshalTextPtr opType = 216
|
|
opStructFieldPtrHeadOmitEmptyMarshalTextPtr opType = 217
|
|
opStructFieldPtrHeadStringTagMarshalTextPtr opType = 218
|
|
opStructFieldHeadInterfacePtr opType = 219
|
|
opStructFieldHeadOmitEmptyInterfacePtr opType = 220
|
|
opStructFieldHeadStringTagInterfacePtr opType = 221
|
|
opStructFieldPtrHeadInterfacePtr opType = 222
|
|
opStructFieldPtrHeadOmitEmptyInterfacePtr opType = 223
|
|
opStructFieldPtrHeadStringTagInterfacePtr opType = 224
|
|
opStructFieldHead opType = 225
|
|
opStructFieldHeadOmitEmpty opType = 226
|
|
opStructFieldHeadStringTag opType = 227
|
|
opStructFieldPtrHead opType = 228
|
|
opStructFieldPtrHeadOmitEmpty opType = 229
|
|
opStructFieldPtrHeadStringTag opType = 230
|
|
opStructFieldInt opType = 231
|
|
opStructFieldOmitEmptyInt opType = 232
|
|
opStructFieldStringTagInt opType = 233
|
|
opStructFieldUint opType = 234
|
|
opStructFieldOmitEmptyUint opType = 235
|
|
opStructFieldStringTagUint opType = 236
|
|
opStructFieldFloat32 opType = 237
|
|
opStructFieldOmitEmptyFloat32 opType = 238
|
|
opStructFieldStringTagFloat32 opType = 239
|
|
opStructFieldFloat64 opType = 240
|
|
opStructFieldOmitEmptyFloat64 opType = 241
|
|
opStructFieldStringTagFloat64 opType = 242
|
|
opStructFieldBool opType = 243
|
|
opStructFieldOmitEmptyBool opType = 244
|
|
opStructFieldStringTagBool opType = 245
|
|
opStructFieldString opType = 246
|
|
opStructFieldOmitEmptyString opType = 247
|
|
opStructFieldStringTagString opType = 248
|
|
opStructFieldBytes opType = 249
|
|
opStructFieldOmitEmptyBytes opType = 250
|
|
opStructFieldStringTagBytes opType = 251
|
|
opStructFieldArray opType = 252
|
|
opStructFieldOmitEmptyArray opType = 253
|
|
opStructFieldStringTagArray opType = 254
|
|
opStructFieldMap opType = 255
|
|
opStructFieldOmitEmptyMap opType = 256
|
|
opStructFieldStringTagMap opType = 257
|
|
opStructFieldMapLoad opType = 258
|
|
opStructFieldOmitEmptyMapLoad opType = 259
|
|
opStructFieldStringTagMapLoad opType = 260
|
|
opStructFieldSlice opType = 261
|
|
opStructFieldOmitEmptySlice opType = 262
|
|
opStructFieldStringTagSlice opType = 263
|
|
opStructFieldStruct opType = 264
|
|
opStructFieldOmitEmptyStruct opType = 265
|
|
opStructFieldStringTagStruct opType = 266
|
|
opStructFieldMarshalJSON opType = 267
|
|
opStructFieldOmitEmptyMarshalJSON opType = 268
|
|
opStructFieldStringTagMarshalJSON opType = 269
|
|
opStructFieldMarshalText opType = 270
|
|
opStructFieldOmitEmptyMarshalText opType = 271
|
|
opStructFieldStringTagMarshalText opType = 272
|
|
opStructFieldRecursive opType = 273
|
|
opStructFieldOmitEmptyRecursive opType = 274
|
|
opStructFieldStringTagRecursive opType = 275
|
|
opStructFieldIntString opType = 276
|
|
opStructFieldOmitEmptyIntString opType = 277
|
|
opStructFieldStringTagIntString opType = 278
|
|
opStructFieldUintString opType = 279
|
|
opStructFieldOmitEmptyUintString opType = 280
|
|
opStructFieldStringTagUintString opType = 281
|
|
opStructFieldIntPtr opType = 282
|
|
opStructFieldOmitEmptyIntPtr opType = 283
|
|
opStructFieldStringTagIntPtr opType = 284
|
|
opStructFieldUintPtr opType = 285
|
|
opStructFieldOmitEmptyUintPtr opType = 286
|
|
opStructFieldStringTagUintPtr opType = 287
|
|
opStructFieldFloat32Ptr opType = 288
|
|
opStructFieldOmitEmptyFloat32Ptr opType = 289
|
|
opStructFieldStringTagFloat32Ptr opType = 290
|
|
opStructFieldFloat64Ptr opType = 291
|
|
opStructFieldOmitEmptyFloat64Ptr opType = 292
|
|
opStructFieldStringTagFloat64Ptr opType = 293
|
|
opStructFieldBoolPtr opType = 294
|
|
opStructFieldOmitEmptyBoolPtr opType = 295
|
|
opStructFieldStringTagBoolPtr opType = 296
|
|
opStructFieldStringPtr opType = 297
|
|
opStructFieldOmitEmptyStringPtr opType = 298
|
|
opStructFieldStringTagStringPtr opType = 299
|
|
opStructFieldBytesPtr opType = 300
|
|
opStructFieldOmitEmptyBytesPtr opType = 301
|
|
opStructFieldStringTagBytesPtr opType = 302
|
|
opStructFieldArrayPtr opType = 303
|
|
opStructFieldOmitEmptyArrayPtr opType = 304
|
|
opStructFieldStringTagArrayPtr opType = 305
|
|
opStructFieldSlicePtr opType = 306
|
|
opStructFieldOmitEmptySlicePtr opType = 307
|
|
opStructFieldStringTagSlicePtr opType = 308
|
|
opStructFieldMapPtr opType = 309
|
|
opStructFieldOmitEmptyMapPtr opType = 310
|
|
opStructFieldStringTagMapPtr opType = 311
|
|
opStructFieldMarshalJSONPtr opType = 312
|
|
opStructFieldOmitEmptyMarshalJSONPtr opType = 313
|
|
opStructFieldStringTagMarshalJSONPtr opType = 314
|
|
opStructFieldMarshalTextPtr opType = 315
|
|
opStructFieldOmitEmptyMarshalTextPtr opType = 316
|
|
opStructFieldStringTagMarshalTextPtr opType = 317
|
|
opStructFieldInterfacePtr opType = 318
|
|
opStructFieldOmitEmptyInterfacePtr opType = 319
|
|
opStructFieldStringTagInterfacePtr opType = 320
|
|
opStructField opType = 321
|
|
opStructFieldOmitEmpty opType = 322
|
|
opStructFieldStringTag opType = 323
|
|
opStructEndInt opType = 324
|
|
opStructEndOmitEmptyInt opType = 325
|
|
opStructEndStringTagInt opType = 326
|
|
opStructEndUint opType = 327
|
|
opStructEndOmitEmptyUint opType = 328
|
|
opStructEndStringTagUint opType = 329
|
|
opStructEndFloat32 opType = 330
|
|
opStructEndOmitEmptyFloat32 opType = 331
|
|
opStructEndStringTagFloat32 opType = 332
|
|
opStructEndFloat64 opType = 333
|
|
opStructEndOmitEmptyFloat64 opType = 334
|
|
opStructEndStringTagFloat64 opType = 335
|
|
opStructEndBool opType = 336
|
|
opStructEndOmitEmptyBool opType = 337
|
|
opStructEndStringTagBool opType = 338
|
|
opStructEndString opType = 339
|
|
opStructEndOmitEmptyString opType = 340
|
|
opStructEndStringTagString opType = 341
|
|
opStructEndBytes opType = 342
|
|
opStructEndOmitEmptyBytes opType = 343
|
|
opStructEndStringTagBytes opType = 344
|
|
opStructEndArray opType = 345
|
|
opStructEndOmitEmptyArray opType = 346
|
|
opStructEndStringTagArray opType = 347
|
|
opStructEndMap opType = 348
|
|
opStructEndOmitEmptyMap opType = 349
|
|
opStructEndStringTagMap opType = 350
|
|
opStructEndMapLoad opType = 351
|
|
opStructEndOmitEmptyMapLoad opType = 352
|
|
opStructEndStringTagMapLoad opType = 353
|
|
opStructEndSlice opType = 354
|
|
opStructEndOmitEmptySlice opType = 355
|
|
opStructEndStringTagSlice opType = 356
|
|
opStructEndStruct opType = 357
|
|
opStructEndOmitEmptyStruct opType = 358
|
|
opStructEndStringTagStruct opType = 359
|
|
opStructEndMarshalJSON opType = 360
|
|
opStructEndOmitEmptyMarshalJSON opType = 361
|
|
opStructEndStringTagMarshalJSON opType = 362
|
|
opStructEndMarshalText opType = 363
|
|
opStructEndOmitEmptyMarshalText opType = 364
|
|
opStructEndStringTagMarshalText opType = 365
|
|
opStructEndRecursive opType = 366
|
|
opStructEndOmitEmptyRecursive opType = 367
|
|
opStructEndStringTagRecursive opType = 368
|
|
opStructEndIntString opType = 369
|
|
opStructEndOmitEmptyIntString opType = 370
|
|
opStructEndStringTagIntString opType = 371
|
|
opStructEndUintString opType = 372
|
|
opStructEndOmitEmptyUintString opType = 373
|
|
opStructEndStringTagUintString opType = 374
|
|
opStructEndIntPtr opType = 375
|
|
opStructEndOmitEmptyIntPtr opType = 376
|
|
opStructEndStringTagIntPtr opType = 377
|
|
opStructEndUintPtr opType = 378
|
|
opStructEndOmitEmptyUintPtr opType = 379
|
|
opStructEndStringTagUintPtr opType = 380
|
|
opStructEndFloat32Ptr opType = 381
|
|
opStructEndOmitEmptyFloat32Ptr opType = 382
|
|
opStructEndStringTagFloat32Ptr opType = 383
|
|
opStructEndFloat64Ptr opType = 384
|
|
opStructEndOmitEmptyFloat64Ptr opType = 385
|
|
opStructEndStringTagFloat64Ptr opType = 386
|
|
opStructEndBoolPtr opType = 387
|
|
opStructEndOmitEmptyBoolPtr opType = 388
|
|
opStructEndStringTagBoolPtr opType = 389
|
|
opStructEndStringPtr opType = 390
|
|
opStructEndOmitEmptyStringPtr opType = 391
|
|
opStructEndStringTagStringPtr opType = 392
|
|
opStructEndBytesPtr opType = 393
|
|
opStructEndOmitEmptyBytesPtr opType = 394
|
|
opStructEndStringTagBytesPtr opType = 395
|
|
opStructEndArrayPtr opType = 396
|
|
opStructEndOmitEmptyArrayPtr opType = 397
|
|
opStructEndStringTagArrayPtr opType = 398
|
|
opStructEndSlicePtr opType = 399
|
|
opStructEndOmitEmptySlicePtr opType = 400
|
|
opStructEndStringTagSlicePtr opType = 401
|
|
opStructEndMapPtr opType = 402
|
|
opStructEndOmitEmptyMapPtr opType = 403
|
|
opStructEndStringTagMapPtr opType = 404
|
|
opStructEndMarshalJSONPtr opType = 405
|
|
opStructEndOmitEmptyMarshalJSONPtr opType = 406
|
|
opStructEndStringTagMarshalJSONPtr opType = 407
|
|
opStructEndMarshalTextPtr opType = 408
|
|
opStructEndOmitEmptyMarshalTextPtr opType = 409
|
|
opStructEndStringTagMarshalTextPtr opType = 410
|
|
opStructEndInterfacePtr opType = 411
|
|
opStructEndOmitEmptyInterfacePtr opType = 412
|
|
opStructEndStringTagInterfacePtr opType = 413
|
|
opStructEnd opType = 414
|
|
opStructEndOmitEmpty opType = 415
|
|
opStructEndStringTag opType = 416
|
|
)
|
|
|
|
func (t opType) String() string {
|
|
if int(t) >= 417 {
|
|
return ""
|
|
}
|
|
return opTypeStrings[int(t)]
|
|
}
|
|
|
|
func (t opType) codeType() codeType {
|
|
if strings.Contains(t.String(), "Struct") {
|
|
if strings.Contains(t.String(), "End") {
|
|
return codeStructEnd
|
|
}
|
|
return codeStructField
|
|
}
|
|
if t.String() == "Array" || t.String() == "ArrayPtr" {
|
|
return codeArrayHead
|
|
}
|
|
if strings.Contains(t.String(), "ArrayElem") {
|
|
return codeArrayElem
|
|
}
|
|
if t.String() == "Slice" || t.String() == "SlicePtr" {
|
|
return codeSliceHead
|
|
}
|
|
if strings.Contains(t.String(), "SliceElem") {
|
|
return codeSliceElem
|
|
}
|
|
if t.String() == "Map" || t.String() == "MapPtr" {
|
|
return codeMapHead
|
|
}
|
|
if strings.Contains(t.String(), "MapKey") {
|
|
return codeMapKey
|
|
}
|
|
if strings.Contains(t.String(), "MapValue") {
|
|
return codeMapValue
|
|
}
|
|
if strings.Contains(t.String(), "MapEnd") {
|
|
return codeMapEnd
|
|
}
|
|
|
|
return codeOp
|
|
}
|
|
|
|
func (t opType) headToPtrHead() opType {
|
|
if strings.Index(t.String(), "PtrHead") > 0 {
|
|
return t
|
|
}
|
|
|
|
idx := strings.Index(t.String(), "Field")
|
|
if idx == -1 {
|
|
return t
|
|
}
|
|
suffix := "Ptr" + t.String()[idx+len("Field"):]
|
|
|
|
const toPtrOffset = 3
|
|
if strings.Contains(opType(int(t)+toPtrOffset).String(), suffix) {
|
|
return opType(int(t) + toPtrOffset)
|
|
}
|
|
return t
|
|
}
|
|
|
|
func (t opType) headToOmitEmptyHead() opType {
|
|
const toOmitEmptyOffset = 1
|
|
if strings.Contains(opType(int(t)+toOmitEmptyOffset).String(), "OmitEmpty") {
|
|
return opType(int(t) + toOmitEmptyOffset)
|
|
}
|
|
|
|
return t
|
|
}
|
|
|
|
func (t opType) headToStringTagHead() opType {
|
|
const toStringTagOffset = 2
|
|
if strings.Contains(opType(int(t)+toStringTagOffset).String(), "StringTag") {
|
|
return opType(int(t) + toStringTagOffset)
|
|
}
|
|
return t
|
|
}
|
|
|
|
func (t opType) ptrHeadToHead() opType {
|
|
idx := strings.Index(t.String(), "Ptr")
|
|
if idx == -1 {
|
|
return t
|
|
}
|
|
suffix := t.String()[idx+len("Ptr"):]
|
|
|
|
const toPtrOffset = 3
|
|
if strings.Contains(opType(int(t)-toPtrOffset).String(), suffix) {
|
|
return opType(int(t) - toPtrOffset)
|
|
}
|
|
return t
|
|
}
|
|
|
|
func (t opType) fieldToEnd() opType {
|
|
switch t {
|
|
case opStructFieldInt:
|
|
return opStructEndInt
|
|
case opStructFieldOmitEmptyInt:
|
|
return opStructEndOmitEmptyInt
|
|
case opStructFieldStringTagInt:
|
|
return opStructEndStringTagInt
|
|
case opStructFieldUint:
|
|
return opStructEndUint
|
|
case opStructFieldOmitEmptyUint:
|
|
return opStructEndOmitEmptyUint
|
|
case opStructFieldStringTagUint:
|
|
return opStructEndStringTagUint
|
|
case opStructFieldFloat32:
|
|
return opStructEndFloat32
|
|
case opStructFieldOmitEmptyFloat32:
|
|
return opStructEndOmitEmptyFloat32
|
|
case opStructFieldStringTagFloat32:
|
|
return opStructEndStringTagFloat32
|
|
case opStructFieldFloat64:
|
|
return opStructEndFloat64
|
|
case opStructFieldOmitEmptyFloat64:
|
|
return opStructEndOmitEmptyFloat64
|
|
case opStructFieldStringTagFloat64:
|
|
return opStructEndStringTagFloat64
|
|
case opStructFieldBool:
|
|
return opStructEndBool
|
|
case opStructFieldOmitEmptyBool:
|
|
return opStructEndOmitEmptyBool
|
|
case opStructFieldStringTagBool:
|
|
return opStructEndStringTagBool
|
|
case opStructFieldString:
|
|
return opStructEndString
|
|
case opStructFieldOmitEmptyString:
|
|
return opStructEndOmitEmptyString
|
|
case opStructFieldStringTagString:
|
|
return opStructEndStringTagString
|
|
case opStructFieldBytes:
|
|
return opStructEndBytes
|
|
case opStructFieldOmitEmptyBytes:
|
|
return opStructEndOmitEmptyBytes
|
|
case opStructFieldStringTagBytes:
|
|
return opStructEndStringTagBytes
|
|
case opStructFieldMarshalJSON:
|
|
return opStructEndMarshalJSON
|
|
case opStructFieldOmitEmptyMarshalJSON:
|
|
return opStructEndOmitEmptyMarshalJSON
|
|
case opStructFieldStringTagMarshalJSON:
|
|
return opStructEndStringTagMarshalJSON
|
|
case opStructFieldMarshalText:
|
|
return opStructEndMarshalText
|
|
case opStructFieldOmitEmptyMarshalText:
|
|
return opStructEndOmitEmptyMarshalText
|
|
case opStructFieldStringTagMarshalText:
|
|
return opStructEndStringTagMarshalText
|
|
case opStructFieldIntString:
|
|
return opStructEndIntString
|
|
case opStructFieldOmitEmptyIntString:
|
|
return opStructEndOmitEmptyIntString
|
|
case opStructFieldStringTagIntString:
|
|
return opStructEndStringTagIntString
|
|
case opStructFieldUintString:
|
|
return opStructEndUintString
|
|
case opStructFieldOmitEmptyUintString:
|
|
return opStructEndOmitEmptyUintString
|
|
case opStructFieldStringTagUintString:
|
|
return opStructEndStringTagUintString
|
|
case opStructFieldIntPtr:
|
|
return opStructEndIntPtr
|
|
case opStructFieldOmitEmptyIntPtr:
|
|
return opStructEndOmitEmptyIntPtr
|
|
case opStructFieldStringTagIntPtr:
|
|
return opStructEndStringTagIntPtr
|
|
case opStructFieldUintPtr:
|
|
return opStructEndUintPtr
|
|
case opStructFieldOmitEmptyUintPtr:
|
|
return opStructEndOmitEmptyUintPtr
|
|
case opStructFieldStringTagUintPtr:
|
|
return opStructEndStringTagUintPtr
|
|
case opStructFieldFloat32Ptr:
|
|
return opStructEndFloat32Ptr
|
|
case opStructFieldOmitEmptyFloat32Ptr:
|
|
return opStructEndOmitEmptyFloat32Ptr
|
|
case opStructFieldStringTagFloat32Ptr:
|
|
return opStructEndStringTagFloat32Ptr
|
|
case opStructFieldFloat64Ptr:
|
|
return opStructEndFloat64Ptr
|
|
case opStructFieldOmitEmptyFloat64Ptr:
|
|
return opStructEndOmitEmptyFloat64Ptr
|
|
case opStructFieldStringTagFloat64Ptr:
|
|
return opStructEndStringTagFloat64Ptr
|
|
case opStructFieldBoolPtr:
|
|
return opStructEndBoolPtr
|
|
case opStructFieldOmitEmptyBoolPtr:
|
|
return opStructEndOmitEmptyBoolPtr
|
|
case opStructFieldStringTagBoolPtr:
|
|
return opStructEndStringTagBoolPtr
|
|
case opStructFieldStringPtr:
|
|
return opStructEndStringPtr
|
|
case opStructFieldOmitEmptyStringPtr:
|
|
return opStructEndOmitEmptyStringPtr
|
|
case opStructFieldStringTagStringPtr:
|
|
return opStructEndStringTagStringPtr
|
|
case opStructFieldBytesPtr:
|
|
return opStructEndBytesPtr
|
|
case opStructFieldOmitEmptyBytesPtr:
|
|
return opStructEndOmitEmptyBytesPtr
|
|
case opStructFieldStringTagBytesPtr:
|
|
return opStructEndStringTagBytesPtr
|
|
case opStructFieldArrayPtr:
|
|
return opStructEndArrayPtr
|
|
case opStructFieldOmitEmptyArrayPtr:
|
|
return opStructEndOmitEmptyArrayPtr
|
|
case opStructFieldStringTagArrayPtr:
|
|
return opStructEndStringTagArrayPtr
|
|
case opStructFieldSlicePtr:
|
|
return opStructEndSlicePtr
|
|
case opStructFieldOmitEmptySlicePtr:
|
|
return opStructEndOmitEmptySlicePtr
|
|
case opStructFieldStringTagSlicePtr:
|
|
return opStructEndStringTagSlicePtr
|
|
case opStructFieldMapPtr:
|
|
return opStructEndMapPtr
|
|
case opStructFieldOmitEmptyMapPtr:
|
|
return opStructEndOmitEmptyMapPtr
|
|
case opStructFieldStringTagMapPtr:
|
|
return opStructEndStringTagMapPtr
|
|
case opStructFieldMarshalJSONPtr:
|
|
return opStructEndMarshalJSONPtr
|
|
case opStructFieldOmitEmptyMarshalJSONPtr:
|
|
return opStructEndOmitEmptyMarshalJSONPtr
|
|
case opStructFieldStringTagMarshalJSONPtr:
|
|
return opStructEndStringTagMarshalJSONPtr
|
|
case opStructFieldMarshalTextPtr:
|
|
return opStructEndMarshalTextPtr
|
|
case opStructFieldOmitEmptyMarshalTextPtr:
|
|
return opStructEndOmitEmptyMarshalTextPtr
|
|
case opStructFieldStringTagMarshalTextPtr:
|
|
return opStructEndStringTagMarshalTextPtr
|
|
case opStructFieldInterfacePtr:
|
|
return opStructEndInterfacePtr
|
|
case opStructFieldOmitEmptyInterfacePtr:
|
|
return opStructEndOmitEmptyInterfacePtr
|
|
case opStructFieldStringTagInterfacePtr:
|
|
return opStructEndStringTagInterfacePtr
|
|
}
|
|
return t
|
|
}
|
|
|
|
func (t opType) fieldToOmitEmptyField() opType {
|
|
const toOmitEmptyOffset = 1
|
|
if strings.Contains(opType(int(t)+toOmitEmptyOffset).String(), "OmitEmpty") {
|
|
return opType(int(t) + toOmitEmptyOffset)
|
|
}
|
|
return t
|
|
}
|
|
|
|
func (t opType) fieldToStringTagField() opType {
|
|
const toStringTagOffset = 2
|
|
if strings.Contains(opType(int(t)+toStringTagOffset).String(), "StringTag") {
|
|
return opType(int(t) + toStringTagOffset)
|
|
}
|
|
return t
|
|
}
|