forked from mirror/go-json
Refactor Recursive optype
This commit is contained in:
parent
9564532feb
commit
e5d855ff42
|
@ -14,54 +14,12 @@ import (
|
||||||
type opType struct {
|
type opType struct {
|
||||||
Op string
|
Op string
|
||||||
Code string
|
Code string
|
||||||
HeadToPtrHead func() string
|
|
||||||
HeadToOmitEmptyHead func() string
|
|
||||||
HeadToStringTagHead func() string
|
|
||||||
PtrHeadToHead func() string
|
|
||||||
FieldToEnd func() string
|
|
||||||
FieldToOmitEmptyField func() string
|
|
||||||
FieldToStringTagField func() string
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t opType) IsHeadToPtrHead() bool {
|
|
||||||
return t.Op != t.HeadToPtrHead()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t opType) IsHeadToOmitEmptyHead() bool {
|
|
||||||
return t.Op != t.HeadToOmitEmptyHead()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t opType) IsHeadToStringTagHead() bool {
|
|
||||||
return t.Op != t.HeadToStringTagHead()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t opType) IsPtrHeadToHead() bool {
|
|
||||||
return t.Op != t.PtrHeadToHead()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t opType) IsFieldToEnd() bool {
|
|
||||||
return t.Op != t.FieldToEnd()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t opType) IsFieldToOmitEmptyField() bool {
|
|
||||||
return t.Op != t.FieldToOmitEmptyField()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t opType) IsFieldToStringTagField() bool {
|
|
||||||
return t.Op != t.FieldToStringTagField()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func createOpType(op, code string) opType {
|
func createOpType(op, code string) opType {
|
||||||
return opType{
|
return opType{
|
||||||
Op: op,
|
Op: op,
|
||||||
Code: code,
|
Code: code,
|
||||||
HeadToPtrHead: func() string { return op },
|
|
||||||
HeadToOmitEmptyHead: func() string { return op },
|
|
||||||
HeadToStringTagHead: func() string { return op },
|
|
||||||
PtrHeadToHead: func() string { return op },
|
|
||||||
FieldToEnd: func() string { return op },
|
|
||||||
FieldToOmitEmptyField: func() string { return op },
|
|
||||||
FieldToStringTagField: func() string { return op },
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -226,16 +184,16 @@ func (t OpType) FieldToStringTagField() OpType {
|
||||||
"MapKey",
|
"MapKey",
|
||||||
"MapValue",
|
"MapValue",
|
||||||
"MapEnd",
|
"MapEnd",
|
||||||
"StructFieldRecursive",
|
"Recursive",
|
||||||
"StructField",
|
"StructField",
|
||||||
"StructEnd",
|
"StructEnd",
|
||||||
}
|
}
|
||||||
primitiveTypes := []string{
|
primitiveTypes := []string{
|
||||||
"int", "uint", "float32", "float64", "bool", "string", "bytes", "number",
|
"int", "uint", "float32", "float64", "bool", "string", "bytes", "number",
|
||||||
"array", "map", "slice", "struct", "MarshalJSON", "MarshalText", "recursive",
|
"array", "map", "slice", "struct", "MarshalJSON", "MarshalText",
|
||||||
"intString", "uintString",
|
"intString", "uintString",
|
||||||
"intPtr", "uintPtr", "float32Ptr", "float64Ptr", "boolPtr", "stringPtr", "bytesPtr", "numberPtr",
|
"intPtr", "uintPtr", "float32Ptr", "float64Ptr", "boolPtr", "stringPtr", "bytesPtr", "numberPtr",
|
||||||
"arrayPtr", "mapPtr", "slicePtr", "marshalJSONPtr", "marshalTextPtr", "interfacePtr", "recursivePtr",
|
"arrayPtr", "mapPtr", "slicePtr", "marshalJSONPtr", "marshalTextPtr", "interfacePtr",
|
||||||
}
|
}
|
||||||
primitiveTypesUpper := []string{}
|
primitiveTypesUpper := []string{}
|
||||||
for _, typ := range primitiveTypes {
|
for _, typ := range primitiveTypes {
|
||||||
|
@ -252,7 +210,9 @@ func (t OpType) FieldToStringTagField() OpType {
|
||||||
createOpType("MapKey", "MapKey"),
|
createOpType("MapKey", "MapKey"),
|
||||||
createOpType("MapValue", "MapValue"),
|
createOpType("MapValue", "MapValue"),
|
||||||
createOpType("MapEnd", "Op"),
|
createOpType("MapEnd", "Op"),
|
||||||
createOpType("StructFieldRecursiveEnd", "Op"),
|
createOpType("Recursive", "Op"),
|
||||||
|
createOpType("RecursivePtr", "Op"),
|
||||||
|
createOpType("RecursiveEnd", "Op"),
|
||||||
createOpType("StructAnonymousEnd", "StructEnd"),
|
createOpType("StructAnonymousEnd", "StructEnd"),
|
||||||
}
|
}
|
||||||
for _, typ := range primitiveTypesUpper {
|
for _, typ := range primitiveTypesUpper {
|
||||||
|
@ -275,37 +235,6 @@ func (t OpType) FieldToStringTagField() OpType {
|
||||||
opTypes = append(opTypes, opType{
|
opTypes = append(opTypes, opType{
|
||||||
Op: op,
|
Op: op,
|
||||||
Code: "StructField",
|
Code: "StructField",
|
||||||
HeadToPtrHead: func() string {
|
|
||||||
return fmt.Sprintf(
|
|
||||||
"StructPtrHead%s%s",
|
|
||||||
opt,
|
|
||||||
typ,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
HeadToOmitEmptyHead: func() string {
|
|
||||||
return fmt.Sprintf(
|
|
||||||
"Struct%sHeadOmitEmpty%s",
|
|
||||||
ptrOrNot,
|
|
||||||
typ,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
HeadToStringTagHead: func() string {
|
|
||||||
return fmt.Sprintf(
|
|
||||||
"Struct%sHeadStringTag%s",
|
|
||||||
ptrOrNot,
|
|
||||||
typ,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
PtrHeadToHead: func() string {
|
|
||||||
return fmt.Sprintf(
|
|
||||||
"StructHead%s%s",
|
|
||||||
opt,
|
|
||||||
typ,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
FieldToEnd: func() string { return op },
|
|
||||||
FieldToOmitEmptyField: func() string { return op },
|
|
||||||
FieldToStringTagField: func() string { return op },
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -323,33 +252,6 @@ func (t OpType) FieldToStringTagField() OpType {
|
||||||
opTypes = append(opTypes, opType{
|
opTypes = append(opTypes, opType{
|
||||||
Op: op,
|
Op: op,
|
||||||
Code: "StructField",
|
Code: "StructField",
|
||||||
HeadToPtrHead: func() string { return op },
|
|
||||||
HeadToOmitEmptyHead: func() string { return op },
|
|
||||||
HeadToStringTagHead: func() string { return op },
|
|
||||||
PtrHeadToHead: func() string { return op },
|
|
||||||
FieldToEnd: func() string {
|
|
||||||
switch typ {
|
|
||||||
case "", "Array", "Map", "Slice", "Struct", "Recursive":
|
|
||||||
return op
|
|
||||||
}
|
|
||||||
return fmt.Sprintf(
|
|
||||||
"StructEnd%s%s",
|
|
||||||
opt,
|
|
||||||
typ,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
FieldToOmitEmptyField: func() string {
|
|
||||||
return fmt.Sprintf(
|
|
||||||
"StructFieldOmitEmpty%s",
|
|
||||||
typ,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
FieldToStringTagField: func() string {
|
|
||||||
return fmt.Sprintf(
|
|
||||||
"StructFieldStringTag%s",
|
|
||||||
typ,
|
|
||||||
)
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
for _, opt := range []string{"", "OmitEmpty", "StringTag"} {
|
for _, opt := range []string{"", "OmitEmpty", "StringTag"} {
|
||||||
|
@ -364,13 +266,6 @@ func (t OpType) FieldToStringTagField() OpType {
|
||||||
opTypes = append(opTypes, opType{
|
opTypes = append(opTypes, opType{
|
||||||
Op: op,
|
Op: op,
|
||||||
Code: "StructEnd",
|
Code: "StructEnd",
|
||||||
HeadToPtrHead: func() string { return op },
|
|
||||||
HeadToOmitEmptyHead: func() string { return op },
|
|
||||||
HeadToStringTagHead: func() string { return op },
|
|
||||||
PtrHeadToHead: func() string { return op },
|
|
||||||
FieldToEnd: func() string { return op },
|
|
||||||
FieldToOmitEmptyField: func() string { return op },
|
|
||||||
FieldToStringTagField: func() string { return op },
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -116,9 +116,9 @@ func compileHead(ctx *compileContext) (*Opcode, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func linkRecursiveCode(c *Opcode) {
|
func linkRecursiveCode(c *Opcode) {
|
||||||
for code := c; code.Op != OpEnd && code.Op != OpStructFieldRecursiveEnd; {
|
for code := c; code.Op != OpEnd && code.Op != OpRecursiveEnd; {
|
||||||
switch code.Op {
|
switch code.Op {
|
||||||
case OpStructFieldRecursive, OpStructFieldRecursivePtr:
|
case OpRecursive, OpRecursivePtr:
|
||||||
if code.Jmp.Linked {
|
if code.Jmp.Linked {
|
||||||
code = code.Next
|
code = code.Next
|
||||||
continue
|
continue
|
||||||
|
@ -138,7 +138,7 @@ func linkRecursiveCode(c *Opcode) {
|
||||||
totalLength := uintptr(code.TotalLength() + 1)
|
totalLength := uintptr(code.TotalLength() + 1)
|
||||||
nextTotalLength := uintptr(c.TotalLength() + 1)
|
nextTotalLength := uintptr(c.TotalLength() + 1)
|
||||||
|
|
||||||
c.End.Next.Op = OpStructFieldRecursiveEnd
|
c.End.Next.Op = OpRecursiveEnd
|
||||||
|
|
||||||
code.Jmp.CurLen = totalLength
|
code.Jmp.CurLen = totalLength
|
||||||
code.Jmp.NextLen = nextTotalLength
|
code.Jmp.NextLen = nextTotalLength
|
||||||
|
@ -159,7 +159,7 @@ func linkRecursiveCode(c *Opcode) {
|
||||||
|
|
||||||
func optimizeStructEnd(c *Opcode) {
|
func optimizeStructEnd(c *Opcode) {
|
||||||
for code := c; code.Op != OpEnd; {
|
for code := c; code.Op != OpEnd; {
|
||||||
if code.Op == OpStructFieldRecursive || code.Op == OpStructFieldRecursivePtr {
|
if code.Op == OpRecursive || code.Op == OpRecursivePtr {
|
||||||
// ignore if exists recursive operation
|
// ignore if exists recursive operation
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -332,8 +332,8 @@ func convertPtrOp(code *Opcode) OpType {
|
||||||
return OpMarshalTextPtr
|
return OpMarshalTextPtr
|
||||||
case OpInterface:
|
case OpInterface:
|
||||||
return OpInterfacePtr
|
return OpInterfacePtr
|
||||||
case OpStructFieldRecursive:
|
case OpRecursive:
|
||||||
return OpStructFieldRecursivePtr
|
return OpRecursivePtr
|
||||||
}
|
}
|
||||||
return code.Op
|
return code.Op
|
||||||
}
|
}
|
||||||
|
|
|
@ -275,7 +275,7 @@ func (c *Opcode) TotalLength() int {
|
||||||
var idx int
|
var idx int
|
||||||
for code := c; code.Op != OpEnd; {
|
for code := c; code.Op != OpEnd; {
|
||||||
idx = int(code.Idx / uintptrSize)
|
idx = int(code.Idx / uintptrSize)
|
||||||
if code.Op == OpStructFieldRecursiveEnd {
|
if code.Op == OpRecursiveEnd {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
switch code.Op.CodeType() {
|
switch code.Op.CodeType() {
|
||||||
|
@ -636,7 +636,7 @@ func newInterfaceCode(ctx *compileContext) *Opcode {
|
||||||
|
|
||||||
func newRecursiveCode(ctx *compileContext, jmp *CompiledCode) *Opcode {
|
func newRecursiveCode(ctx *compileContext, jmp *CompiledCode) *Opcode {
|
||||||
return &Opcode{
|
return &Opcode{
|
||||||
Op: OpStructFieldRecursive,
|
Op: OpRecursive,
|
||||||
Type: ctx.typ,
|
Type: ctx.typ,
|
||||||
DisplayIdx: ctx.opcodeIndex,
|
DisplayIdx: ctx.opcodeIndex,
|
||||||
Idx: opcodeOffset(ctx.ptrIndex),
|
Idx: opcodeOffset(ctx.ptrIndex),
|
||||||
|
|
|
@ -17,12 +17,12 @@ const (
|
||||||
CodeMapKey CodeType = 6
|
CodeMapKey CodeType = 6
|
||||||
CodeMapValue CodeType = 7
|
CodeMapValue CodeType = 7
|
||||||
CodeMapEnd CodeType = 8
|
CodeMapEnd CodeType = 8
|
||||||
CodeStructFieldRecursive CodeType = 9
|
CodeRecursive CodeType = 9
|
||||||
CodeStructField CodeType = 10
|
CodeStructField CodeType = 10
|
||||||
CodeStructEnd CodeType = 11
|
CodeStructEnd CodeType = 11
|
||||||
)
|
)
|
||||||
|
|
||||||
var opTypeStrings = [440]string{
|
var opTypeStrings = [416]string{
|
||||||
"End",
|
"End",
|
||||||
"Interface",
|
"Interface",
|
||||||
"Ptr",
|
"Ptr",
|
||||||
|
@ -33,7 +33,9 @@ var opTypeStrings = [440]string{
|
||||||
"MapKey",
|
"MapKey",
|
||||||
"MapValue",
|
"MapValue",
|
||||||
"MapEnd",
|
"MapEnd",
|
||||||
"StructFieldRecursiveEnd",
|
"Recursive",
|
||||||
|
"RecursivePtr",
|
||||||
|
"RecursiveEnd",
|
||||||
"StructAnonymousEnd",
|
"StructAnonymousEnd",
|
||||||
"Int",
|
"Int",
|
||||||
"Uint",
|
"Uint",
|
||||||
|
@ -49,7 +51,6 @@ var opTypeStrings = [440]string{
|
||||||
"Struct",
|
"Struct",
|
||||||
"MarshalJSON",
|
"MarshalJSON",
|
||||||
"MarshalText",
|
"MarshalText",
|
||||||
"Recursive",
|
|
||||||
"IntString",
|
"IntString",
|
||||||
"UintString",
|
"UintString",
|
||||||
"IntPtr",
|
"IntPtr",
|
||||||
|
@ -66,7 +67,6 @@ var opTypeStrings = [440]string{
|
||||||
"MarshalJSONPtr",
|
"MarshalJSONPtr",
|
||||||
"MarshalTextPtr",
|
"MarshalTextPtr",
|
||||||
"InterfacePtr",
|
"InterfacePtr",
|
||||||
"RecursivePtr",
|
|
||||||
"StructHeadInt",
|
"StructHeadInt",
|
||||||
"StructHeadOmitEmptyInt",
|
"StructHeadOmitEmptyInt",
|
||||||
"StructHeadStringTagInt",
|
"StructHeadStringTagInt",
|
||||||
|
@ -151,12 +151,6 @@ var opTypeStrings = [440]string{
|
||||||
"StructPtrHeadMarshalText",
|
"StructPtrHeadMarshalText",
|
||||||
"StructPtrHeadOmitEmptyMarshalText",
|
"StructPtrHeadOmitEmptyMarshalText",
|
||||||
"StructPtrHeadStringTagMarshalText",
|
"StructPtrHeadStringTagMarshalText",
|
||||||
"StructHeadRecursive",
|
|
||||||
"StructHeadOmitEmptyRecursive",
|
|
||||||
"StructHeadStringTagRecursive",
|
|
||||||
"StructPtrHeadRecursive",
|
|
||||||
"StructPtrHeadOmitEmptyRecursive",
|
|
||||||
"StructPtrHeadStringTagRecursive",
|
|
||||||
"StructHeadIntString",
|
"StructHeadIntString",
|
||||||
"StructHeadOmitEmptyIntString",
|
"StructHeadOmitEmptyIntString",
|
||||||
"StructHeadStringTagIntString",
|
"StructHeadStringTagIntString",
|
||||||
|
@ -253,12 +247,6 @@ var opTypeStrings = [440]string{
|
||||||
"StructPtrHeadInterfacePtr",
|
"StructPtrHeadInterfacePtr",
|
||||||
"StructPtrHeadOmitEmptyInterfacePtr",
|
"StructPtrHeadOmitEmptyInterfacePtr",
|
||||||
"StructPtrHeadStringTagInterfacePtr",
|
"StructPtrHeadStringTagInterfacePtr",
|
||||||
"StructHeadRecursivePtr",
|
|
||||||
"StructHeadOmitEmptyRecursivePtr",
|
|
||||||
"StructHeadStringTagRecursivePtr",
|
|
||||||
"StructPtrHeadRecursivePtr",
|
|
||||||
"StructPtrHeadOmitEmptyRecursivePtr",
|
|
||||||
"StructPtrHeadStringTagRecursivePtr",
|
|
||||||
"StructHead",
|
"StructHead",
|
||||||
"StructHeadOmitEmpty",
|
"StructHeadOmitEmpty",
|
||||||
"StructHeadStringTag",
|
"StructHeadStringTag",
|
||||||
|
@ -349,12 +337,6 @@ var opTypeStrings = [440]string{
|
||||||
"StructEndMarshalText",
|
"StructEndMarshalText",
|
||||||
"StructEndOmitEmptyMarshalText",
|
"StructEndOmitEmptyMarshalText",
|
||||||
"StructEndStringTagMarshalText",
|
"StructEndStringTagMarshalText",
|
||||||
"StructFieldRecursive",
|
|
||||||
"StructFieldOmitEmptyRecursive",
|
|
||||||
"StructFieldStringTagRecursive",
|
|
||||||
"StructEndRecursive",
|
|
||||||
"StructEndOmitEmptyRecursive",
|
|
||||||
"StructEndStringTagRecursive",
|
|
||||||
"StructFieldIntString",
|
"StructFieldIntString",
|
||||||
"StructFieldOmitEmptyIntString",
|
"StructFieldOmitEmptyIntString",
|
||||||
"StructFieldStringTagIntString",
|
"StructFieldStringTagIntString",
|
||||||
|
@ -451,12 +433,6 @@ var opTypeStrings = [440]string{
|
||||||
"StructEndInterfacePtr",
|
"StructEndInterfacePtr",
|
||||||
"StructEndOmitEmptyInterfacePtr",
|
"StructEndOmitEmptyInterfacePtr",
|
||||||
"StructEndStringTagInterfacePtr",
|
"StructEndStringTagInterfacePtr",
|
||||||
"StructFieldRecursivePtr",
|
|
||||||
"StructFieldOmitEmptyRecursivePtr",
|
|
||||||
"StructFieldStringTagRecursivePtr",
|
|
||||||
"StructEndRecursivePtr",
|
|
||||||
"StructEndOmitEmptyRecursivePtr",
|
|
||||||
"StructEndStringTagRecursivePtr",
|
|
||||||
"StructField",
|
"StructField",
|
||||||
"StructFieldOmitEmpty",
|
"StructFieldOmitEmpty",
|
||||||
"StructFieldStringTag",
|
"StructFieldStringTag",
|
||||||
|
@ -478,40 +454,40 @@ const (
|
||||||
OpMapKey OpType = 7
|
OpMapKey OpType = 7
|
||||||
OpMapValue OpType = 8
|
OpMapValue OpType = 8
|
||||||
OpMapEnd OpType = 9
|
OpMapEnd OpType = 9
|
||||||
OpStructFieldRecursiveEnd OpType = 10
|
OpRecursive OpType = 10
|
||||||
OpStructAnonymousEnd OpType = 11
|
OpRecursivePtr OpType = 11
|
||||||
OpInt OpType = 12
|
OpRecursiveEnd OpType = 12
|
||||||
OpUint OpType = 13
|
OpStructAnonymousEnd OpType = 13
|
||||||
OpFloat32 OpType = 14
|
OpInt OpType = 14
|
||||||
OpFloat64 OpType = 15
|
OpUint OpType = 15
|
||||||
OpBool OpType = 16
|
OpFloat32 OpType = 16
|
||||||
OpString OpType = 17
|
OpFloat64 OpType = 17
|
||||||
OpBytes OpType = 18
|
OpBool OpType = 18
|
||||||
OpNumber OpType = 19
|
OpString OpType = 19
|
||||||
OpArray OpType = 20
|
OpBytes OpType = 20
|
||||||
OpMap OpType = 21
|
OpNumber OpType = 21
|
||||||
OpSlice OpType = 22
|
OpArray OpType = 22
|
||||||
OpStruct OpType = 23
|
OpMap OpType = 23
|
||||||
OpMarshalJSON OpType = 24
|
OpSlice OpType = 24
|
||||||
OpMarshalText OpType = 25
|
OpStruct OpType = 25
|
||||||
OpRecursive OpType = 26
|
OpMarshalJSON OpType = 26
|
||||||
OpIntString OpType = 27
|
OpMarshalText OpType = 27
|
||||||
OpUintString OpType = 28
|
OpIntString OpType = 28
|
||||||
OpIntPtr OpType = 29
|
OpUintString OpType = 29
|
||||||
OpUintPtr OpType = 30
|
OpIntPtr OpType = 30
|
||||||
OpFloat32Ptr OpType = 31
|
OpUintPtr OpType = 31
|
||||||
OpFloat64Ptr OpType = 32
|
OpFloat32Ptr OpType = 32
|
||||||
OpBoolPtr OpType = 33
|
OpFloat64Ptr OpType = 33
|
||||||
OpStringPtr OpType = 34
|
OpBoolPtr OpType = 34
|
||||||
OpBytesPtr OpType = 35
|
OpStringPtr OpType = 35
|
||||||
OpNumberPtr OpType = 36
|
OpBytesPtr OpType = 36
|
||||||
OpArrayPtr OpType = 37
|
OpNumberPtr OpType = 37
|
||||||
OpMapPtr OpType = 38
|
OpArrayPtr OpType = 38
|
||||||
OpSlicePtr OpType = 39
|
OpMapPtr OpType = 39
|
||||||
OpMarshalJSONPtr OpType = 40
|
OpSlicePtr OpType = 40
|
||||||
OpMarshalTextPtr OpType = 41
|
OpMarshalJSONPtr OpType = 41
|
||||||
OpInterfacePtr OpType = 42
|
OpMarshalTextPtr OpType = 42
|
||||||
OpRecursivePtr OpType = 43
|
OpInterfacePtr OpType = 43
|
||||||
OpStructHeadInt OpType = 44
|
OpStructHeadInt OpType = 44
|
||||||
OpStructHeadOmitEmptyInt OpType = 45
|
OpStructHeadOmitEmptyInt OpType = 45
|
||||||
OpStructHeadStringTagInt OpType = 46
|
OpStructHeadStringTagInt OpType = 46
|
||||||
|
@ -596,322 +572,298 @@ const (
|
||||||
OpStructPtrHeadMarshalText OpType = 125
|
OpStructPtrHeadMarshalText OpType = 125
|
||||||
OpStructPtrHeadOmitEmptyMarshalText OpType = 126
|
OpStructPtrHeadOmitEmptyMarshalText OpType = 126
|
||||||
OpStructPtrHeadStringTagMarshalText OpType = 127
|
OpStructPtrHeadStringTagMarshalText OpType = 127
|
||||||
OpStructHeadRecursive OpType = 128
|
OpStructHeadIntString OpType = 128
|
||||||
OpStructHeadOmitEmptyRecursive OpType = 129
|
OpStructHeadOmitEmptyIntString OpType = 129
|
||||||
OpStructHeadStringTagRecursive OpType = 130
|
OpStructHeadStringTagIntString OpType = 130
|
||||||
OpStructPtrHeadRecursive OpType = 131
|
OpStructPtrHeadIntString OpType = 131
|
||||||
OpStructPtrHeadOmitEmptyRecursive OpType = 132
|
OpStructPtrHeadOmitEmptyIntString OpType = 132
|
||||||
OpStructPtrHeadStringTagRecursive OpType = 133
|
OpStructPtrHeadStringTagIntString OpType = 133
|
||||||
OpStructHeadIntString OpType = 134
|
OpStructHeadUintString OpType = 134
|
||||||
OpStructHeadOmitEmptyIntString OpType = 135
|
OpStructHeadOmitEmptyUintString OpType = 135
|
||||||
OpStructHeadStringTagIntString OpType = 136
|
OpStructHeadStringTagUintString OpType = 136
|
||||||
OpStructPtrHeadIntString OpType = 137
|
OpStructPtrHeadUintString OpType = 137
|
||||||
OpStructPtrHeadOmitEmptyIntString OpType = 138
|
OpStructPtrHeadOmitEmptyUintString OpType = 138
|
||||||
OpStructPtrHeadStringTagIntString OpType = 139
|
OpStructPtrHeadStringTagUintString OpType = 139
|
||||||
OpStructHeadUintString OpType = 140
|
OpStructHeadIntPtr OpType = 140
|
||||||
OpStructHeadOmitEmptyUintString OpType = 141
|
OpStructHeadOmitEmptyIntPtr OpType = 141
|
||||||
OpStructHeadStringTagUintString OpType = 142
|
OpStructHeadStringTagIntPtr OpType = 142
|
||||||
OpStructPtrHeadUintString OpType = 143
|
OpStructPtrHeadIntPtr OpType = 143
|
||||||
OpStructPtrHeadOmitEmptyUintString OpType = 144
|
OpStructPtrHeadOmitEmptyIntPtr OpType = 144
|
||||||
OpStructPtrHeadStringTagUintString OpType = 145
|
OpStructPtrHeadStringTagIntPtr OpType = 145
|
||||||
OpStructHeadIntPtr OpType = 146
|
OpStructHeadUintPtr OpType = 146
|
||||||
OpStructHeadOmitEmptyIntPtr OpType = 147
|
OpStructHeadOmitEmptyUintPtr OpType = 147
|
||||||
OpStructHeadStringTagIntPtr OpType = 148
|
OpStructHeadStringTagUintPtr OpType = 148
|
||||||
OpStructPtrHeadIntPtr OpType = 149
|
OpStructPtrHeadUintPtr OpType = 149
|
||||||
OpStructPtrHeadOmitEmptyIntPtr OpType = 150
|
OpStructPtrHeadOmitEmptyUintPtr OpType = 150
|
||||||
OpStructPtrHeadStringTagIntPtr OpType = 151
|
OpStructPtrHeadStringTagUintPtr OpType = 151
|
||||||
OpStructHeadUintPtr OpType = 152
|
OpStructHeadFloat32Ptr OpType = 152
|
||||||
OpStructHeadOmitEmptyUintPtr OpType = 153
|
OpStructHeadOmitEmptyFloat32Ptr OpType = 153
|
||||||
OpStructHeadStringTagUintPtr OpType = 154
|
OpStructHeadStringTagFloat32Ptr OpType = 154
|
||||||
OpStructPtrHeadUintPtr OpType = 155
|
OpStructPtrHeadFloat32Ptr OpType = 155
|
||||||
OpStructPtrHeadOmitEmptyUintPtr OpType = 156
|
OpStructPtrHeadOmitEmptyFloat32Ptr OpType = 156
|
||||||
OpStructPtrHeadStringTagUintPtr OpType = 157
|
OpStructPtrHeadStringTagFloat32Ptr OpType = 157
|
||||||
OpStructHeadFloat32Ptr OpType = 158
|
OpStructHeadFloat64Ptr OpType = 158
|
||||||
OpStructHeadOmitEmptyFloat32Ptr OpType = 159
|
OpStructHeadOmitEmptyFloat64Ptr OpType = 159
|
||||||
OpStructHeadStringTagFloat32Ptr OpType = 160
|
OpStructHeadStringTagFloat64Ptr OpType = 160
|
||||||
OpStructPtrHeadFloat32Ptr OpType = 161
|
OpStructPtrHeadFloat64Ptr OpType = 161
|
||||||
OpStructPtrHeadOmitEmptyFloat32Ptr OpType = 162
|
OpStructPtrHeadOmitEmptyFloat64Ptr OpType = 162
|
||||||
OpStructPtrHeadStringTagFloat32Ptr OpType = 163
|
OpStructPtrHeadStringTagFloat64Ptr OpType = 163
|
||||||
OpStructHeadFloat64Ptr OpType = 164
|
OpStructHeadBoolPtr OpType = 164
|
||||||
OpStructHeadOmitEmptyFloat64Ptr OpType = 165
|
OpStructHeadOmitEmptyBoolPtr OpType = 165
|
||||||
OpStructHeadStringTagFloat64Ptr OpType = 166
|
OpStructHeadStringTagBoolPtr OpType = 166
|
||||||
OpStructPtrHeadFloat64Ptr OpType = 167
|
OpStructPtrHeadBoolPtr OpType = 167
|
||||||
OpStructPtrHeadOmitEmptyFloat64Ptr OpType = 168
|
OpStructPtrHeadOmitEmptyBoolPtr OpType = 168
|
||||||
OpStructPtrHeadStringTagFloat64Ptr OpType = 169
|
OpStructPtrHeadStringTagBoolPtr OpType = 169
|
||||||
OpStructHeadBoolPtr OpType = 170
|
OpStructHeadStringPtr OpType = 170
|
||||||
OpStructHeadOmitEmptyBoolPtr OpType = 171
|
OpStructHeadOmitEmptyStringPtr OpType = 171
|
||||||
OpStructHeadStringTagBoolPtr OpType = 172
|
OpStructHeadStringTagStringPtr OpType = 172
|
||||||
OpStructPtrHeadBoolPtr OpType = 173
|
OpStructPtrHeadStringPtr OpType = 173
|
||||||
OpStructPtrHeadOmitEmptyBoolPtr OpType = 174
|
OpStructPtrHeadOmitEmptyStringPtr OpType = 174
|
||||||
OpStructPtrHeadStringTagBoolPtr OpType = 175
|
OpStructPtrHeadStringTagStringPtr OpType = 175
|
||||||
OpStructHeadStringPtr OpType = 176
|
OpStructHeadBytesPtr OpType = 176
|
||||||
OpStructHeadOmitEmptyStringPtr OpType = 177
|
OpStructHeadOmitEmptyBytesPtr OpType = 177
|
||||||
OpStructHeadStringTagStringPtr OpType = 178
|
OpStructHeadStringTagBytesPtr OpType = 178
|
||||||
OpStructPtrHeadStringPtr OpType = 179
|
OpStructPtrHeadBytesPtr OpType = 179
|
||||||
OpStructPtrHeadOmitEmptyStringPtr OpType = 180
|
OpStructPtrHeadOmitEmptyBytesPtr OpType = 180
|
||||||
OpStructPtrHeadStringTagStringPtr OpType = 181
|
OpStructPtrHeadStringTagBytesPtr OpType = 181
|
||||||
OpStructHeadBytesPtr OpType = 182
|
OpStructHeadNumberPtr OpType = 182
|
||||||
OpStructHeadOmitEmptyBytesPtr OpType = 183
|
OpStructHeadOmitEmptyNumberPtr OpType = 183
|
||||||
OpStructHeadStringTagBytesPtr OpType = 184
|
OpStructHeadStringTagNumberPtr OpType = 184
|
||||||
OpStructPtrHeadBytesPtr OpType = 185
|
OpStructPtrHeadNumberPtr OpType = 185
|
||||||
OpStructPtrHeadOmitEmptyBytesPtr OpType = 186
|
OpStructPtrHeadOmitEmptyNumberPtr OpType = 186
|
||||||
OpStructPtrHeadStringTagBytesPtr OpType = 187
|
OpStructPtrHeadStringTagNumberPtr OpType = 187
|
||||||
OpStructHeadNumberPtr OpType = 188
|
OpStructHeadArrayPtr OpType = 188
|
||||||
OpStructHeadOmitEmptyNumberPtr OpType = 189
|
OpStructHeadOmitEmptyArrayPtr OpType = 189
|
||||||
OpStructHeadStringTagNumberPtr OpType = 190
|
OpStructHeadStringTagArrayPtr OpType = 190
|
||||||
OpStructPtrHeadNumberPtr OpType = 191
|
OpStructPtrHeadArrayPtr OpType = 191
|
||||||
OpStructPtrHeadOmitEmptyNumberPtr OpType = 192
|
OpStructPtrHeadOmitEmptyArrayPtr OpType = 192
|
||||||
OpStructPtrHeadStringTagNumberPtr OpType = 193
|
OpStructPtrHeadStringTagArrayPtr OpType = 193
|
||||||
OpStructHeadArrayPtr OpType = 194
|
OpStructHeadMapPtr OpType = 194
|
||||||
OpStructHeadOmitEmptyArrayPtr OpType = 195
|
OpStructHeadOmitEmptyMapPtr OpType = 195
|
||||||
OpStructHeadStringTagArrayPtr OpType = 196
|
OpStructHeadStringTagMapPtr OpType = 196
|
||||||
OpStructPtrHeadArrayPtr OpType = 197
|
OpStructPtrHeadMapPtr OpType = 197
|
||||||
OpStructPtrHeadOmitEmptyArrayPtr OpType = 198
|
OpStructPtrHeadOmitEmptyMapPtr OpType = 198
|
||||||
OpStructPtrHeadStringTagArrayPtr OpType = 199
|
OpStructPtrHeadStringTagMapPtr OpType = 199
|
||||||
OpStructHeadMapPtr OpType = 200
|
OpStructHeadSlicePtr OpType = 200
|
||||||
OpStructHeadOmitEmptyMapPtr OpType = 201
|
OpStructHeadOmitEmptySlicePtr OpType = 201
|
||||||
OpStructHeadStringTagMapPtr OpType = 202
|
OpStructHeadStringTagSlicePtr OpType = 202
|
||||||
OpStructPtrHeadMapPtr OpType = 203
|
OpStructPtrHeadSlicePtr OpType = 203
|
||||||
OpStructPtrHeadOmitEmptyMapPtr OpType = 204
|
OpStructPtrHeadOmitEmptySlicePtr OpType = 204
|
||||||
OpStructPtrHeadStringTagMapPtr OpType = 205
|
OpStructPtrHeadStringTagSlicePtr OpType = 205
|
||||||
OpStructHeadSlicePtr OpType = 206
|
OpStructHeadMarshalJSONPtr OpType = 206
|
||||||
OpStructHeadOmitEmptySlicePtr OpType = 207
|
OpStructHeadOmitEmptyMarshalJSONPtr OpType = 207
|
||||||
OpStructHeadStringTagSlicePtr OpType = 208
|
OpStructHeadStringTagMarshalJSONPtr OpType = 208
|
||||||
OpStructPtrHeadSlicePtr OpType = 209
|
OpStructPtrHeadMarshalJSONPtr OpType = 209
|
||||||
OpStructPtrHeadOmitEmptySlicePtr OpType = 210
|
OpStructPtrHeadOmitEmptyMarshalJSONPtr OpType = 210
|
||||||
OpStructPtrHeadStringTagSlicePtr OpType = 211
|
OpStructPtrHeadStringTagMarshalJSONPtr OpType = 211
|
||||||
OpStructHeadMarshalJSONPtr OpType = 212
|
OpStructHeadMarshalTextPtr OpType = 212
|
||||||
OpStructHeadOmitEmptyMarshalJSONPtr OpType = 213
|
OpStructHeadOmitEmptyMarshalTextPtr OpType = 213
|
||||||
OpStructHeadStringTagMarshalJSONPtr OpType = 214
|
OpStructHeadStringTagMarshalTextPtr OpType = 214
|
||||||
OpStructPtrHeadMarshalJSONPtr OpType = 215
|
OpStructPtrHeadMarshalTextPtr OpType = 215
|
||||||
OpStructPtrHeadOmitEmptyMarshalJSONPtr OpType = 216
|
OpStructPtrHeadOmitEmptyMarshalTextPtr OpType = 216
|
||||||
OpStructPtrHeadStringTagMarshalJSONPtr OpType = 217
|
OpStructPtrHeadStringTagMarshalTextPtr OpType = 217
|
||||||
OpStructHeadMarshalTextPtr OpType = 218
|
OpStructHeadInterfacePtr OpType = 218
|
||||||
OpStructHeadOmitEmptyMarshalTextPtr OpType = 219
|
OpStructHeadOmitEmptyInterfacePtr OpType = 219
|
||||||
OpStructHeadStringTagMarshalTextPtr OpType = 220
|
OpStructHeadStringTagInterfacePtr OpType = 220
|
||||||
OpStructPtrHeadMarshalTextPtr OpType = 221
|
OpStructPtrHeadInterfacePtr OpType = 221
|
||||||
OpStructPtrHeadOmitEmptyMarshalTextPtr OpType = 222
|
OpStructPtrHeadOmitEmptyInterfacePtr OpType = 222
|
||||||
OpStructPtrHeadStringTagMarshalTextPtr OpType = 223
|
OpStructPtrHeadStringTagInterfacePtr OpType = 223
|
||||||
OpStructHeadInterfacePtr OpType = 224
|
OpStructHead OpType = 224
|
||||||
OpStructHeadOmitEmptyInterfacePtr OpType = 225
|
OpStructHeadOmitEmpty OpType = 225
|
||||||
OpStructHeadStringTagInterfacePtr OpType = 226
|
OpStructHeadStringTag OpType = 226
|
||||||
OpStructPtrHeadInterfacePtr OpType = 227
|
OpStructPtrHead OpType = 227
|
||||||
OpStructPtrHeadOmitEmptyInterfacePtr OpType = 228
|
OpStructPtrHeadOmitEmpty OpType = 228
|
||||||
OpStructPtrHeadStringTagInterfacePtr OpType = 229
|
OpStructPtrHeadStringTag OpType = 229
|
||||||
OpStructHeadRecursivePtr OpType = 230
|
OpStructFieldInt OpType = 230
|
||||||
OpStructHeadOmitEmptyRecursivePtr OpType = 231
|
OpStructFieldOmitEmptyInt OpType = 231
|
||||||
OpStructHeadStringTagRecursivePtr OpType = 232
|
OpStructFieldStringTagInt OpType = 232
|
||||||
OpStructPtrHeadRecursivePtr OpType = 233
|
OpStructEndInt OpType = 233
|
||||||
OpStructPtrHeadOmitEmptyRecursivePtr OpType = 234
|
OpStructEndOmitEmptyInt OpType = 234
|
||||||
OpStructPtrHeadStringTagRecursivePtr OpType = 235
|
OpStructEndStringTagInt OpType = 235
|
||||||
OpStructHead OpType = 236
|
OpStructFieldUint OpType = 236
|
||||||
OpStructHeadOmitEmpty OpType = 237
|
OpStructFieldOmitEmptyUint OpType = 237
|
||||||
OpStructHeadStringTag OpType = 238
|
OpStructFieldStringTagUint OpType = 238
|
||||||
OpStructPtrHead OpType = 239
|
OpStructEndUint OpType = 239
|
||||||
OpStructPtrHeadOmitEmpty OpType = 240
|
OpStructEndOmitEmptyUint OpType = 240
|
||||||
OpStructPtrHeadStringTag OpType = 241
|
OpStructEndStringTagUint OpType = 241
|
||||||
OpStructFieldInt OpType = 242
|
OpStructFieldFloat32 OpType = 242
|
||||||
OpStructFieldOmitEmptyInt OpType = 243
|
OpStructFieldOmitEmptyFloat32 OpType = 243
|
||||||
OpStructFieldStringTagInt OpType = 244
|
OpStructFieldStringTagFloat32 OpType = 244
|
||||||
OpStructEndInt OpType = 245
|
OpStructEndFloat32 OpType = 245
|
||||||
OpStructEndOmitEmptyInt OpType = 246
|
OpStructEndOmitEmptyFloat32 OpType = 246
|
||||||
OpStructEndStringTagInt OpType = 247
|
OpStructEndStringTagFloat32 OpType = 247
|
||||||
OpStructFieldUint OpType = 248
|
OpStructFieldFloat64 OpType = 248
|
||||||
OpStructFieldOmitEmptyUint OpType = 249
|
OpStructFieldOmitEmptyFloat64 OpType = 249
|
||||||
OpStructFieldStringTagUint OpType = 250
|
OpStructFieldStringTagFloat64 OpType = 250
|
||||||
OpStructEndUint OpType = 251
|
OpStructEndFloat64 OpType = 251
|
||||||
OpStructEndOmitEmptyUint OpType = 252
|
OpStructEndOmitEmptyFloat64 OpType = 252
|
||||||
OpStructEndStringTagUint OpType = 253
|
OpStructEndStringTagFloat64 OpType = 253
|
||||||
OpStructFieldFloat32 OpType = 254
|
OpStructFieldBool OpType = 254
|
||||||
OpStructFieldOmitEmptyFloat32 OpType = 255
|
OpStructFieldOmitEmptyBool OpType = 255
|
||||||
OpStructFieldStringTagFloat32 OpType = 256
|
OpStructFieldStringTagBool OpType = 256
|
||||||
OpStructEndFloat32 OpType = 257
|
OpStructEndBool OpType = 257
|
||||||
OpStructEndOmitEmptyFloat32 OpType = 258
|
OpStructEndOmitEmptyBool OpType = 258
|
||||||
OpStructEndStringTagFloat32 OpType = 259
|
OpStructEndStringTagBool OpType = 259
|
||||||
OpStructFieldFloat64 OpType = 260
|
OpStructFieldString OpType = 260
|
||||||
OpStructFieldOmitEmptyFloat64 OpType = 261
|
OpStructFieldOmitEmptyString OpType = 261
|
||||||
OpStructFieldStringTagFloat64 OpType = 262
|
OpStructFieldStringTagString OpType = 262
|
||||||
OpStructEndFloat64 OpType = 263
|
OpStructEndString OpType = 263
|
||||||
OpStructEndOmitEmptyFloat64 OpType = 264
|
OpStructEndOmitEmptyString OpType = 264
|
||||||
OpStructEndStringTagFloat64 OpType = 265
|
OpStructEndStringTagString OpType = 265
|
||||||
OpStructFieldBool OpType = 266
|
OpStructFieldBytes OpType = 266
|
||||||
OpStructFieldOmitEmptyBool OpType = 267
|
OpStructFieldOmitEmptyBytes OpType = 267
|
||||||
OpStructFieldStringTagBool OpType = 268
|
OpStructFieldStringTagBytes OpType = 268
|
||||||
OpStructEndBool OpType = 269
|
OpStructEndBytes OpType = 269
|
||||||
OpStructEndOmitEmptyBool OpType = 270
|
OpStructEndOmitEmptyBytes OpType = 270
|
||||||
OpStructEndStringTagBool OpType = 271
|
OpStructEndStringTagBytes OpType = 271
|
||||||
OpStructFieldString OpType = 272
|
OpStructFieldNumber OpType = 272
|
||||||
OpStructFieldOmitEmptyString OpType = 273
|
OpStructFieldOmitEmptyNumber OpType = 273
|
||||||
OpStructFieldStringTagString OpType = 274
|
OpStructFieldStringTagNumber OpType = 274
|
||||||
OpStructEndString OpType = 275
|
OpStructEndNumber OpType = 275
|
||||||
OpStructEndOmitEmptyString OpType = 276
|
OpStructEndOmitEmptyNumber OpType = 276
|
||||||
OpStructEndStringTagString OpType = 277
|
OpStructEndStringTagNumber OpType = 277
|
||||||
OpStructFieldBytes OpType = 278
|
OpStructFieldArray OpType = 278
|
||||||
OpStructFieldOmitEmptyBytes OpType = 279
|
OpStructFieldOmitEmptyArray OpType = 279
|
||||||
OpStructFieldStringTagBytes OpType = 280
|
OpStructFieldStringTagArray OpType = 280
|
||||||
OpStructEndBytes OpType = 281
|
OpStructEndArray OpType = 281
|
||||||
OpStructEndOmitEmptyBytes OpType = 282
|
OpStructEndOmitEmptyArray OpType = 282
|
||||||
OpStructEndStringTagBytes OpType = 283
|
OpStructEndStringTagArray OpType = 283
|
||||||
OpStructFieldNumber OpType = 284
|
OpStructFieldMap OpType = 284
|
||||||
OpStructFieldOmitEmptyNumber OpType = 285
|
OpStructFieldOmitEmptyMap OpType = 285
|
||||||
OpStructFieldStringTagNumber OpType = 286
|
OpStructFieldStringTagMap OpType = 286
|
||||||
OpStructEndNumber OpType = 287
|
OpStructEndMap OpType = 287
|
||||||
OpStructEndOmitEmptyNumber OpType = 288
|
OpStructEndOmitEmptyMap OpType = 288
|
||||||
OpStructEndStringTagNumber OpType = 289
|
OpStructEndStringTagMap OpType = 289
|
||||||
OpStructFieldArray OpType = 290
|
OpStructFieldSlice OpType = 290
|
||||||
OpStructFieldOmitEmptyArray OpType = 291
|
OpStructFieldOmitEmptySlice OpType = 291
|
||||||
OpStructFieldStringTagArray OpType = 292
|
OpStructFieldStringTagSlice OpType = 292
|
||||||
OpStructEndArray OpType = 293
|
OpStructEndSlice OpType = 293
|
||||||
OpStructEndOmitEmptyArray OpType = 294
|
OpStructEndOmitEmptySlice OpType = 294
|
||||||
OpStructEndStringTagArray OpType = 295
|
OpStructEndStringTagSlice OpType = 295
|
||||||
OpStructFieldMap OpType = 296
|
OpStructFieldStruct OpType = 296
|
||||||
OpStructFieldOmitEmptyMap OpType = 297
|
OpStructFieldOmitEmptyStruct OpType = 297
|
||||||
OpStructFieldStringTagMap OpType = 298
|
OpStructFieldStringTagStruct OpType = 298
|
||||||
OpStructEndMap OpType = 299
|
OpStructEndStruct OpType = 299
|
||||||
OpStructEndOmitEmptyMap OpType = 300
|
OpStructEndOmitEmptyStruct OpType = 300
|
||||||
OpStructEndStringTagMap OpType = 301
|
OpStructEndStringTagStruct OpType = 301
|
||||||
OpStructFieldSlice OpType = 302
|
OpStructFieldMarshalJSON OpType = 302
|
||||||
OpStructFieldOmitEmptySlice OpType = 303
|
OpStructFieldOmitEmptyMarshalJSON OpType = 303
|
||||||
OpStructFieldStringTagSlice OpType = 304
|
OpStructFieldStringTagMarshalJSON OpType = 304
|
||||||
OpStructEndSlice OpType = 305
|
OpStructEndMarshalJSON OpType = 305
|
||||||
OpStructEndOmitEmptySlice OpType = 306
|
OpStructEndOmitEmptyMarshalJSON OpType = 306
|
||||||
OpStructEndStringTagSlice OpType = 307
|
OpStructEndStringTagMarshalJSON OpType = 307
|
||||||
OpStructFieldStruct OpType = 308
|
OpStructFieldMarshalText OpType = 308
|
||||||
OpStructFieldOmitEmptyStruct OpType = 309
|
OpStructFieldOmitEmptyMarshalText OpType = 309
|
||||||
OpStructFieldStringTagStruct OpType = 310
|
OpStructFieldStringTagMarshalText OpType = 310
|
||||||
OpStructEndStruct OpType = 311
|
OpStructEndMarshalText OpType = 311
|
||||||
OpStructEndOmitEmptyStruct OpType = 312
|
OpStructEndOmitEmptyMarshalText OpType = 312
|
||||||
OpStructEndStringTagStruct OpType = 313
|
OpStructEndStringTagMarshalText OpType = 313
|
||||||
OpStructFieldMarshalJSON OpType = 314
|
OpStructFieldIntString OpType = 314
|
||||||
OpStructFieldOmitEmptyMarshalJSON OpType = 315
|
OpStructFieldOmitEmptyIntString OpType = 315
|
||||||
OpStructFieldStringTagMarshalJSON OpType = 316
|
OpStructFieldStringTagIntString OpType = 316
|
||||||
OpStructEndMarshalJSON OpType = 317
|
OpStructEndIntString OpType = 317
|
||||||
OpStructEndOmitEmptyMarshalJSON OpType = 318
|
OpStructEndOmitEmptyIntString OpType = 318
|
||||||
OpStructEndStringTagMarshalJSON OpType = 319
|
OpStructEndStringTagIntString OpType = 319
|
||||||
OpStructFieldMarshalText OpType = 320
|
OpStructFieldUintString OpType = 320
|
||||||
OpStructFieldOmitEmptyMarshalText OpType = 321
|
OpStructFieldOmitEmptyUintString OpType = 321
|
||||||
OpStructFieldStringTagMarshalText OpType = 322
|
OpStructFieldStringTagUintString OpType = 322
|
||||||
OpStructEndMarshalText OpType = 323
|
OpStructEndUintString OpType = 323
|
||||||
OpStructEndOmitEmptyMarshalText OpType = 324
|
OpStructEndOmitEmptyUintString OpType = 324
|
||||||
OpStructEndStringTagMarshalText OpType = 325
|
OpStructEndStringTagUintString OpType = 325
|
||||||
OpStructFieldRecursive OpType = 326
|
OpStructFieldIntPtr OpType = 326
|
||||||
OpStructFieldOmitEmptyRecursive OpType = 327
|
OpStructFieldOmitEmptyIntPtr OpType = 327
|
||||||
OpStructFieldStringTagRecursive OpType = 328
|
OpStructFieldStringTagIntPtr OpType = 328
|
||||||
OpStructEndRecursive OpType = 329
|
OpStructEndIntPtr OpType = 329
|
||||||
OpStructEndOmitEmptyRecursive OpType = 330
|
OpStructEndOmitEmptyIntPtr OpType = 330
|
||||||
OpStructEndStringTagRecursive OpType = 331
|
OpStructEndStringTagIntPtr OpType = 331
|
||||||
OpStructFieldIntString OpType = 332
|
OpStructFieldUintPtr OpType = 332
|
||||||
OpStructFieldOmitEmptyIntString OpType = 333
|
OpStructFieldOmitEmptyUintPtr OpType = 333
|
||||||
OpStructFieldStringTagIntString OpType = 334
|
OpStructFieldStringTagUintPtr OpType = 334
|
||||||
OpStructEndIntString OpType = 335
|
OpStructEndUintPtr OpType = 335
|
||||||
OpStructEndOmitEmptyIntString OpType = 336
|
OpStructEndOmitEmptyUintPtr OpType = 336
|
||||||
OpStructEndStringTagIntString OpType = 337
|
OpStructEndStringTagUintPtr OpType = 337
|
||||||
OpStructFieldUintString OpType = 338
|
OpStructFieldFloat32Ptr OpType = 338
|
||||||
OpStructFieldOmitEmptyUintString OpType = 339
|
OpStructFieldOmitEmptyFloat32Ptr OpType = 339
|
||||||
OpStructFieldStringTagUintString OpType = 340
|
OpStructFieldStringTagFloat32Ptr OpType = 340
|
||||||
OpStructEndUintString OpType = 341
|
OpStructEndFloat32Ptr OpType = 341
|
||||||
OpStructEndOmitEmptyUintString OpType = 342
|
OpStructEndOmitEmptyFloat32Ptr OpType = 342
|
||||||
OpStructEndStringTagUintString OpType = 343
|
OpStructEndStringTagFloat32Ptr OpType = 343
|
||||||
OpStructFieldIntPtr OpType = 344
|
OpStructFieldFloat64Ptr OpType = 344
|
||||||
OpStructFieldOmitEmptyIntPtr OpType = 345
|
OpStructFieldOmitEmptyFloat64Ptr OpType = 345
|
||||||
OpStructFieldStringTagIntPtr OpType = 346
|
OpStructFieldStringTagFloat64Ptr OpType = 346
|
||||||
OpStructEndIntPtr OpType = 347
|
OpStructEndFloat64Ptr OpType = 347
|
||||||
OpStructEndOmitEmptyIntPtr OpType = 348
|
OpStructEndOmitEmptyFloat64Ptr OpType = 348
|
||||||
OpStructEndStringTagIntPtr OpType = 349
|
OpStructEndStringTagFloat64Ptr OpType = 349
|
||||||
OpStructFieldUintPtr OpType = 350
|
OpStructFieldBoolPtr OpType = 350
|
||||||
OpStructFieldOmitEmptyUintPtr OpType = 351
|
OpStructFieldOmitEmptyBoolPtr OpType = 351
|
||||||
OpStructFieldStringTagUintPtr OpType = 352
|
OpStructFieldStringTagBoolPtr OpType = 352
|
||||||
OpStructEndUintPtr OpType = 353
|
OpStructEndBoolPtr OpType = 353
|
||||||
OpStructEndOmitEmptyUintPtr OpType = 354
|
OpStructEndOmitEmptyBoolPtr OpType = 354
|
||||||
OpStructEndStringTagUintPtr OpType = 355
|
OpStructEndStringTagBoolPtr OpType = 355
|
||||||
OpStructFieldFloat32Ptr OpType = 356
|
OpStructFieldStringPtr OpType = 356
|
||||||
OpStructFieldOmitEmptyFloat32Ptr OpType = 357
|
OpStructFieldOmitEmptyStringPtr OpType = 357
|
||||||
OpStructFieldStringTagFloat32Ptr OpType = 358
|
OpStructFieldStringTagStringPtr OpType = 358
|
||||||
OpStructEndFloat32Ptr OpType = 359
|
OpStructEndStringPtr OpType = 359
|
||||||
OpStructEndOmitEmptyFloat32Ptr OpType = 360
|
OpStructEndOmitEmptyStringPtr OpType = 360
|
||||||
OpStructEndStringTagFloat32Ptr OpType = 361
|
OpStructEndStringTagStringPtr OpType = 361
|
||||||
OpStructFieldFloat64Ptr OpType = 362
|
OpStructFieldBytesPtr OpType = 362
|
||||||
OpStructFieldOmitEmptyFloat64Ptr OpType = 363
|
OpStructFieldOmitEmptyBytesPtr OpType = 363
|
||||||
OpStructFieldStringTagFloat64Ptr OpType = 364
|
OpStructFieldStringTagBytesPtr OpType = 364
|
||||||
OpStructEndFloat64Ptr OpType = 365
|
OpStructEndBytesPtr OpType = 365
|
||||||
OpStructEndOmitEmptyFloat64Ptr OpType = 366
|
OpStructEndOmitEmptyBytesPtr OpType = 366
|
||||||
OpStructEndStringTagFloat64Ptr OpType = 367
|
OpStructEndStringTagBytesPtr OpType = 367
|
||||||
OpStructFieldBoolPtr OpType = 368
|
OpStructFieldNumberPtr OpType = 368
|
||||||
OpStructFieldOmitEmptyBoolPtr OpType = 369
|
OpStructFieldOmitEmptyNumberPtr OpType = 369
|
||||||
OpStructFieldStringTagBoolPtr OpType = 370
|
OpStructFieldStringTagNumberPtr OpType = 370
|
||||||
OpStructEndBoolPtr OpType = 371
|
OpStructEndNumberPtr OpType = 371
|
||||||
OpStructEndOmitEmptyBoolPtr OpType = 372
|
OpStructEndOmitEmptyNumberPtr OpType = 372
|
||||||
OpStructEndStringTagBoolPtr OpType = 373
|
OpStructEndStringTagNumberPtr OpType = 373
|
||||||
OpStructFieldStringPtr OpType = 374
|
OpStructFieldArrayPtr OpType = 374
|
||||||
OpStructFieldOmitEmptyStringPtr OpType = 375
|
OpStructFieldOmitEmptyArrayPtr OpType = 375
|
||||||
OpStructFieldStringTagStringPtr OpType = 376
|
OpStructFieldStringTagArrayPtr OpType = 376
|
||||||
OpStructEndStringPtr OpType = 377
|
OpStructEndArrayPtr OpType = 377
|
||||||
OpStructEndOmitEmptyStringPtr OpType = 378
|
OpStructEndOmitEmptyArrayPtr OpType = 378
|
||||||
OpStructEndStringTagStringPtr OpType = 379
|
OpStructEndStringTagArrayPtr OpType = 379
|
||||||
OpStructFieldBytesPtr OpType = 380
|
OpStructFieldMapPtr OpType = 380
|
||||||
OpStructFieldOmitEmptyBytesPtr OpType = 381
|
OpStructFieldOmitEmptyMapPtr OpType = 381
|
||||||
OpStructFieldStringTagBytesPtr OpType = 382
|
OpStructFieldStringTagMapPtr OpType = 382
|
||||||
OpStructEndBytesPtr OpType = 383
|
OpStructEndMapPtr OpType = 383
|
||||||
OpStructEndOmitEmptyBytesPtr OpType = 384
|
OpStructEndOmitEmptyMapPtr OpType = 384
|
||||||
OpStructEndStringTagBytesPtr OpType = 385
|
OpStructEndStringTagMapPtr OpType = 385
|
||||||
OpStructFieldNumberPtr OpType = 386
|
OpStructFieldSlicePtr OpType = 386
|
||||||
OpStructFieldOmitEmptyNumberPtr OpType = 387
|
OpStructFieldOmitEmptySlicePtr OpType = 387
|
||||||
OpStructFieldStringTagNumberPtr OpType = 388
|
OpStructFieldStringTagSlicePtr OpType = 388
|
||||||
OpStructEndNumberPtr OpType = 389
|
OpStructEndSlicePtr OpType = 389
|
||||||
OpStructEndOmitEmptyNumberPtr OpType = 390
|
OpStructEndOmitEmptySlicePtr OpType = 390
|
||||||
OpStructEndStringTagNumberPtr OpType = 391
|
OpStructEndStringTagSlicePtr OpType = 391
|
||||||
OpStructFieldArrayPtr OpType = 392
|
OpStructFieldMarshalJSONPtr OpType = 392
|
||||||
OpStructFieldOmitEmptyArrayPtr OpType = 393
|
OpStructFieldOmitEmptyMarshalJSONPtr OpType = 393
|
||||||
OpStructFieldStringTagArrayPtr OpType = 394
|
OpStructFieldStringTagMarshalJSONPtr OpType = 394
|
||||||
OpStructEndArrayPtr OpType = 395
|
OpStructEndMarshalJSONPtr OpType = 395
|
||||||
OpStructEndOmitEmptyArrayPtr OpType = 396
|
OpStructEndOmitEmptyMarshalJSONPtr OpType = 396
|
||||||
OpStructEndStringTagArrayPtr OpType = 397
|
OpStructEndStringTagMarshalJSONPtr OpType = 397
|
||||||
OpStructFieldMapPtr OpType = 398
|
OpStructFieldMarshalTextPtr OpType = 398
|
||||||
OpStructFieldOmitEmptyMapPtr OpType = 399
|
OpStructFieldOmitEmptyMarshalTextPtr OpType = 399
|
||||||
OpStructFieldStringTagMapPtr OpType = 400
|
OpStructFieldStringTagMarshalTextPtr OpType = 400
|
||||||
OpStructEndMapPtr OpType = 401
|
OpStructEndMarshalTextPtr OpType = 401
|
||||||
OpStructEndOmitEmptyMapPtr OpType = 402
|
OpStructEndOmitEmptyMarshalTextPtr OpType = 402
|
||||||
OpStructEndStringTagMapPtr OpType = 403
|
OpStructEndStringTagMarshalTextPtr OpType = 403
|
||||||
OpStructFieldSlicePtr OpType = 404
|
OpStructFieldInterfacePtr OpType = 404
|
||||||
OpStructFieldOmitEmptySlicePtr OpType = 405
|
OpStructFieldOmitEmptyInterfacePtr OpType = 405
|
||||||
OpStructFieldStringTagSlicePtr OpType = 406
|
OpStructFieldStringTagInterfacePtr OpType = 406
|
||||||
OpStructEndSlicePtr OpType = 407
|
OpStructEndInterfacePtr OpType = 407
|
||||||
OpStructEndOmitEmptySlicePtr OpType = 408
|
OpStructEndOmitEmptyInterfacePtr OpType = 408
|
||||||
OpStructEndStringTagSlicePtr OpType = 409
|
OpStructEndStringTagInterfacePtr OpType = 409
|
||||||
OpStructFieldMarshalJSONPtr OpType = 410
|
OpStructField OpType = 410
|
||||||
OpStructFieldOmitEmptyMarshalJSONPtr OpType = 411
|
OpStructFieldOmitEmpty OpType = 411
|
||||||
OpStructFieldStringTagMarshalJSONPtr OpType = 412
|
OpStructFieldStringTag OpType = 412
|
||||||
OpStructEndMarshalJSONPtr OpType = 413
|
OpStructEnd OpType = 413
|
||||||
OpStructEndOmitEmptyMarshalJSONPtr OpType = 414
|
OpStructEndOmitEmpty OpType = 414
|
||||||
OpStructEndStringTagMarshalJSONPtr OpType = 415
|
OpStructEndStringTag OpType = 415
|
||||||
OpStructFieldMarshalTextPtr OpType = 416
|
|
||||||
OpStructFieldOmitEmptyMarshalTextPtr OpType = 417
|
|
||||||
OpStructFieldStringTagMarshalTextPtr OpType = 418
|
|
||||||
OpStructEndMarshalTextPtr OpType = 419
|
|
||||||
OpStructEndOmitEmptyMarshalTextPtr OpType = 420
|
|
||||||
OpStructEndStringTagMarshalTextPtr OpType = 421
|
|
||||||
OpStructFieldInterfacePtr OpType = 422
|
|
||||||
OpStructFieldOmitEmptyInterfacePtr OpType = 423
|
|
||||||
OpStructFieldStringTagInterfacePtr OpType = 424
|
|
||||||
OpStructEndInterfacePtr OpType = 425
|
|
||||||
OpStructEndOmitEmptyInterfacePtr OpType = 426
|
|
||||||
OpStructEndStringTagInterfacePtr OpType = 427
|
|
||||||
OpStructFieldRecursivePtr OpType = 428
|
|
||||||
OpStructFieldOmitEmptyRecursivePtr OpType = 429
|
|
||||||
OpStructFieldStringTagRecursivePtr OpType = 430
|
|
||||||
OpStructEndRecursivePtr OpType = 431
|
|
||||||
OpStructEndOmitEmptyRecursivePtr OpType = 432
|
|
||||||
OpStructEndStringTagRecursivePtr OpType = 433
|
|
||||||
OpStructField OpType = 434
|
|
||||||
OpStructFieldOmitEmpty OpType = 435
|
|
||||||
OpStructFieldStringTag OpType = 436
|
|
||||||
OpStructEnd OpType = 437
|
|
||||||
OpStructEndOmitEmpty OpType = 438
|
|
||||||
OpStructEndStringTag OpType = 439
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (t OpType) String() string {
|
func (t OpType) String() string {
|
||||||
if int(t) >= 440 {
|
if int(t) >= 416 {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
return opTypeStrings[int(t)]
|
return opTypeStrings[int(t)]
|
||||||
|
|
|
@ -518,7 +518,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
mapCtx.Buf = buf
|
mapCtx.Buf = buf
|
||||||
encoder.ReleaseMapContext(mapCtx)
|
encoder.ReleaseMapContext(mapCtx)
|
||||||
code = code.Next
|
code = code.Next
|
||||||
case encoder.OpStructFieldRecursivePtr:
|
case encoder.OpRecursivePtr:
|
||||||
p := load(ctxptr, code.Idx)
|
p := load(ctxptr, code.Idx)
|
||||||
if p == 0 {
|
if p == 0 {
|
||||||
code = code.Next
|
code = code.Next
|
||||||
|
@ -526,7 +526,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
}
|
}
|
||||||
store(ctxptr, code.Idx, ptrToNPtr(p, code.PtrNum))
|
store(ctxptr, code.Idx, ptrToNPtr(p, code.PtrNum))
|
||||||
fallthrough
|
fallthrough
|
||||||
case encoder.OpStructFieldRecursive:
|
case encoder.OpRecursive:
|
||||||
ptr := load(ctxptr, code.Idx)
|
ptr := load(ctxptr, code.Idx)
|
||||||
if ptr != 0 {
|
if ptr != 0 {
|
||||||
if recursiveLevel > encoder.StartDetectingCyclesAfter {
|
if recursiveLevel > encoder.StartDetectingCyclesAfter {
|
||||||
|
@ -555,7 +555,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
store(ctxptr, c.End.Next.ElemIdx, uintptr(unsafe.Pointer(code.Next)))
|
store(ctxptr, c.End.Next.ElemIdx, uintptr(unsafe.Pointer(code.Next)))
|
||||||
code = c
|
code = c
|
||||||
recursiveLevel++
|
recursiveLevel++
|
||||||
case encoder.OpStructFieldRecursiveEnd:
|
case encoder.OpRecursiveEnd:
|
||||||
recursiveLevel--
|
recursiveLevel--
|
||||||
|
|
||||||
// restore ctxptr
|
// restore ctxptr
|
||||||
|
|
|
@ -518,7 +518,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
mapCtx.Buf = buf
|
mapCtx.Buf = buf
|
||||||
encoder.ReleaseMapContext(mapCtx)
|
encoder.ReleaseMapContext(mapCtx)
|
||||||
code = code.Next
|
code = code.Next
|
||||||
case encoder.OpStructFieldRecursivePtr:
|
case encoder.OpRecursivePtr:
|
||||||
p := load(ctxptr, code.Idx)
|
p := load(ctxptr, code.Idx)
|
||||||
if p == 0 {
|
if p == 0 {
|
||||||
code = code.Next
|
code = code.Next
|
||||||
|
@ -526,7 +526,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
}
|
}
|
||||||
store(ctxptr, code.Idx, ptrToNPtr(p, code.PtrNum))
|
store(ctxptr, code.Idx, ptrToNPtr(p, code.PtrNum))
|
||||||
fallthrough
|
fallthrough
|
||||||
case encoder.OpStructFieldRecursive:
|
case encoder.OpRecursive:
|
||||||
ptr := load(ctxptr, code.Idx)
|
ptr := load(ctxptr, code.Idx)
|
||||||
if ptr != 0 {
|
if ptr != 0 {
|
||||||
if recursiveLevel > encoder.StartDetectingCyclesAfter {
|
if recursiveLevel > encoder.StartDetectingCyclesAfter {
|
||||||
|
@ -555,7 +555,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
store(ctxptr, c.End.Next.ElemIdx, uintptr(unsafe.Pointer(code.Next)))
|
store(ctxptr, c.End.Next.ElemIdx, uintptr(unsafe.Pointer(code.Next)))
|
||||||
code = c
|
code = c
|
||||||
recursiveLevel++
|
recursiveLevel++
|
||||||
case encoder.OpStructFieldRecursiveEnd:
|
case encoder.OpRecursiveEnd:
|
||||||
recursiveLevel--
|
recursiveLevel--
|
||||||
|
|
||||||
// restore ctxptr
|
// restore ctxptr
|
||||||
|
|
|
@ -534,7 +534,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
mapCtx.Buf = buf
|
mapCtx.Buf = buf
|
||||||
encoder.ReleaseMapContext(mapCtx)
|
encoder.ReleaseMapContext(mapCtx)
|
||||||
code = code.Next
|
code = code.Next
|
||||||
case encoder.OpStructFieldRecursivePtr:
|
case encoder.OpRecursivePtr:
|
||||||
p := load(ctxptr, code.Idx)
|
p := load(ctxptr, code.Idx)
|
||||||
if p == 0 {
|
if p == 0 {
|
||||||
code = code.Next
|
code = code.Next
|
||||||
|
@ -542,7 +542,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
}
|
}
|
||||||
store(ctxptr, code.Idx, ptrToNPtr(p, code.PtrNum))
|
store(ctxptr, code.Idx, ptrToNPtr(p, code.PtrNum))
|
||||||
fallthrough
|
fallthrough
|
||||||
case encoder.OpStructFieldRecursive:
|
case encoder.OpRecursive:
|
||||||
ptr := load(ctxptr, code.Idx)
|
ptr := load(ctxptr, code.Idx)
|
||||||
if ptr != 0 {
|
if ptr != 0 {
|
||||||
if recursiveLevel > encoder.StartDetectingCyclesAfter {
|
if recursiveLevel > encoder.StartDetectingCyclesAfter {
|
||||||
|
@ -571,7 +571,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
store(ctxptr, c.End.Next.ElemIdx, uintptr(unsafe.Pointer(code.Next)))
|
store(ctxptr, c.End.Next.ElemIdx, uintptr(unsafe.Pointer(code.Next)))
|
||||||
code = c
|
code = c
|
||||||
recursiveLevel++
|
recursiveLevel++
|
||||||
case encoder.OpStructFieldRecursiveEnd:
|
case encoder.OpRecursiveEnd:
|
||||||
recursiveLevel--
|
recursiveLevel--
|
||||||
|
|
||||||
// restore ctxptr
|
// restore ctxptr
|
||||||
|
|
|
@ -540,7 +540,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
mapCtx.Buf = buf
|
mapCtx.Buf = buf
|
||||||
encoder.ReleaseMapContext(mapCtx)
|
encoder.ReleaseMapContext(mapCtx)
|
||||||
code = code.Next
|
code = code.Next
|
||||||
case encoder.OpStructFieldRecursivePtr:
|
case encoder.OpRecursivePtr:
|
||||||
p := load(ctxptr, code.Idx)
|
p := load(ctxptr, code.Idx)
|
||||||
if p == 0 {
|
if p == 0 {
|
||||||
code = code.Next
|
code = code.Next
|
||||||
|
@ -548,7 +548,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
}
|
}
|
||||||
store(ctxptr, code.Idx, ptrToNPtr(p, code.PtrNum))
|
store(ctxptr, code.Idx, ptrToNPtr(p, code.PtrNum))
|
||||||
fallthrough
|
fallthrough
|
||||||
case encoder.OpStructFieldRecursive:
|
case encoder.OpRecursive:
|
||||||
ptr := load(ctxptr, code.Idx)
|
ptr := load(ctxptr, code.Idx)
|
||||||
if ptr != 0 {
|
if ptr != 0 {
|
||||||
if recursiveLevel > encoder.StartDetectingCyclesAfter {
|
if recursiveLevel > encoder.StartDetectingCyclesAfter {
|
||||||
|
@ -577,7 +577,7 @@ func Run(ctx *encoder.RuntimeContext, b []byte, codeSet *encoder.OpcodeSet, opt
|
||||||
store(ctxptr, c.End.Next.ElemIdx, uintptr(unsafe.Pointer(code.Next)))
|
store(ctxptr, c.End.Next.ElemIdx, uintptr(unsafe.Pointer(code.Next)))
|
||||||
code = c
|
code = c
|
||||||
recursiveLevel++
|
recursiveLevel++
|
||||||
case encoder.OpStructFieldRecursiveEnd:
|
case encoder.OpRecursiveEnd:
|
||||||
recursiveLevel--
|
recursiveLevel--
|
||||||
|
|
||||||
// restore ctxptr
|
// restore ctxptr
|
||||||
|
|
Loading…
Reference in New Issue