// Code generated by internal/cmd/generator. DO NOT EDIT! package encoder 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 = [440]string{ "End", "Interface", "Ptr", "SliceElem", "SliceEnd", "ArrayElem", "ArrayEnd", "MapKey", "MapValue", "MapEnd", "StructFieldRecursiveEnd", "StructAnonymousEnd", "Int", "Uint", "Float32", "Float64", "Bool", "String", "Bytes", "Number", "Array", "Map", "Slice", "Struct", "MarshalJSON", "MarshalText", "Recursive", "IntString", "UintString", "IntPtr", "UintPtr", "Float32Ptr", "Float64Ptr", "BoolPtr", "StringPtr", "BytesPtr", "NumberPtr", "ArrayPtr", "MapPtr", "SlicePtr", "MarshalJSONPtr", "MarshalTextPtr", "InterfacePtr", "RecursivePtr", "StructHeadInt", "StructHeadOmitEmptyInt", "StructHeadStringTagInt", "StructPtrHeadInt", "StructPtrHeadOmitEmptyInt", "StructPtrHeadStringTagInt", "StructHeadUint", "StructHeadOmitEmptyUint", "StructHeadStringTagUint", "StructPtrHeadUint", "StructPtrHeadOmitEmptyUint", "StructPtrHeadStringTagUint", "StructHeadFloat32", "StructHeadOmitEmptyFloat32", "StructHeadStringTagFloat32", "StructPtrHeadFloat32", "StructPtrHeadOmitEmptyFloat32", "StructPtrHeadStringTagFloat32", "StructHeadFloat64", "StructHeadOmitEmptyFloat64", "StructHeadStringTagFloat64", "StructPtrHeadFloat64", "StructPtrHeadOmitEmptyFloat64", "StructPtrHeadStringTagFloat64", "StructHeadBool", "StructHeadOmitEmptyBool", "StructHeadStringTagBool", "StructPtrHeadBool", "StructPtrHeadOmitEmptyBool", "StructPtrHeadStringTagBool", "StructHeadString", "StructHeadOmitEmptyString", "StructHeadStringTagString", "StructPtrHeadString", "StructPtrHeadOmitEmptyString", "StructPtrHeadStringTagString", "StructHeadBytes", "StructHeadOmitEmptyBytes", "StructHeadStringTagBytes", "StructPtrHeadBytes", "StructPtrHeadOmitEmptyBytes", "StructPtrHeadStringTagBytes", "StructHeadNumber", "StructHeadOmitEmptyNumber", "StructHeadStringTagNumber", "StructPtrHeadNumber", "StructPtrHeadOmitEmptyNumber", "StructPtrHeadStringTagNumber", "StructHeadArray", "StructHeadOmitEmptyArray", "StructHeadStringTagArray", "StructPtrHeadArray", "StructPtrHeadOmitEmptyArray", "StructPtrHeadStringTagArray", "StructHeadMap", "StructHeadOmitEmptyMap", "StructHeadStringTagMap", "StructPtrHeadMap", "StructPtrHeadOmitEmptyMap", "StructPtrHeadStringTagMap", "StructHeadSlice", "StructHeadOmitEmptySlice", "StructHeadStringTagSlice", "StructPtrHeadSlice", "StructPtrHeadOmitEmptySlice", "StructPtrHeadStringTagSlice", "StructHeadStruct", "StructHeadOmitEmptyStruct", "StructHeadStringTagStruct", "StructPtrHeadStruct", "StructPtrHeadOmitEmptyStruct", "StructPtrHeadStringTagStruct", "StructHeadMarshalJSON", "StructHeadOmitEmptyMarshalJSON", "StructHeadStringTagMarshalJSON", "StructPtrHeadMarshalJSON", "StructPtrHeadOmitEmptyMarshalJSON", "StructPtrHeadStringTagMarshalJSON", "StructHeadMarshalText", "StructHeadOmitEmptyMarshalText", "StructHeadStringTagMarshalText", "StructPtrHeadMarshalText", "StructPtrHeadOmitEmptyMarshalText", "StructPtrHeadStringTagMarshalText", "StructHeadRecursive", "StructHeadOmitEmptyRecursive", "StructHeadStringTagRecursive", "StructPtrHeadRecursive", "StructPtrHeadOmitEmptyRecursive", "StructPtrHeadStringTagRecursive", "StructHeadIntString", "StructHeadOmitEmptyIntString", "StructHeadStringTagIntString", "StructPtrHeadIntString", "StructPtrHeadOmitEmptyIntString", "StructPtrHeadStringTagIntString", "StructHeadUintString", "StructHeadOmitEmptyUintString", "StructHeadStringTagUintString", "StructPtrHeadUintString", "StructPtrHeadOmitEmptyUintString", "StructPtrHeadStringTagUintString", "StructHeadIntPtr", "StructHeadOmitEmptyIntPtr", "StructHeadStringTagIntPtr", "StructPtrHeadIntPtr", "StructPtrHeadOmitEmptyIntPtr", "StructPtrHeadStringTagIntPtr", "StructHeadUintPtr", "StructHeadOmitEmptyUintPtr", "StructHeadStringTagUintPtr", "StructPtrHeadUintPtr", "StructPtrHeadOmitEmptyUintPtr", "StructPtrHeadStringTagUintPtr", "StructHeadFloat32Ptr", "StructHeadOmitEmptyFloat32Ptr", "StructHeadStringTagFloat32Ptr", "StructPtrHeadFloat32Ptr", "StructPtrHeadOmitEmptyFloat32Ptr", "StructPtrHeadStringTagFloat32Ptr", "StructHeadFloat64Ptr", "StructHeadOmitEmptyFloat64Ptr", "StructHeadStringTagFloat64Ptr", "StructPtrHeadFloat64Ptr", "StructPtrHeadOmitEmptyFloat64Ptr", "StructPtrHeadStringTagFloat64Ptr", "StructHeadBoolPtr", "StructHeadOmitEmptyBoolPtr", "StructHeadStringTagBoolPtr", "StructPtrHeadBoolPtr", "StructPtrHeadOmitEmptyBoolPtr", "StructPtrHeadStringTagBoolPtr", "StructHeadStringPtr", "StructHeadOmitEmptyStringPtr", "StructHeadStringTagStringPtr", "StructPtrHeadStringPtr", "StructPtrHeadOmitEmptyStringPtr", "StructPtrHeadStringTagStringPtr", "StructHeadBytesPtr", "StructHeadOmitEmptyBytesPtr", "StructHeadStringTagBytesPtr", "StructPtrHeadBytesPtr", "StructPtrHeadOmitEmptyBytesPtr", "StructPtrHeadStringTagBytesPtr", "StructHeadNumberPtr", "StructHeadOmitEmptyNumberPtr", "StructHeadStringTagNumberPtr", "StructPtrHeadNumberPtr", "StructPtrHeadOmitEmptyNumberPtr", "StructPtrHeadStringTagNumberPtr", "StructHeadArrayPtr", "StructHeadOmitEmptyArrayPtr", "StructHeadStringTagArrayPtr", "StructPtrHeadArrayPtr", "StructPtrHeadOmitEmptyArrayPtr", "StructPtrHeadStringTagArrayPtr", "StructHeadMapPtr", "StructHeadOmitEmptyMapPtr", "StructHeadStringTagMapPtr", "StructPtrHeadMapPtr", "StructPtrHeadOmitEmptyMapPtr", "StructPtrHeadStringTagMapPtr", "StructHeadSlicePtr", "StructHeadOmitEmptySlicePtr", "StructHeadStringTagSlicePtr", "StructPtrHeadSlicePtr", "StructPtrHeadOmitEmptySlicePtr", "StructPtrHeadStringTagSlicePtr", "StructHeadMarshalJSONPtr", "StructHeadOmitEmptyMarshalJSONPtr", "StructHeadStringTagMarshalJSONPtr", "StructPtrHeadMarshalJSONPtr", "StructPtrHeadOmitEmptyMarshalJSONPtr", "StructPtrHeadStringTagMarshalJSONPtr", "StructHeadMarshalTextPtr", "StructHeadOmitEmptyMarshalTextPtr", "StructHeadStringTagMarshalTextPtr", "StructPtrHeadMarshalTextPtr", "StructPtrHeadOmitEmptyMarshalTextPtr", "StructPtrHeadStringTagMarshalTextPtr", "StructHeadInterfacePtr", "StructHeadOmitEmptyInterfacePtr", "StructHeadStringTagInterfacePtr", "StructPtrHeadInterfacePtr", "StructPtrHeadOmitEmptyInterfacePtr", "StructPtrHeadStringTagInterfacePtr", "StructHeadRecursivePtr", "StructHeadOmitEmptyRecursivePtr", "StructHeadStringTagRecursivePtr", "StructPtrHeadRecursivePtr", "StructPtrHeadOmitEmptyRecursivePtr", "StructPtrHeadStringTagRecursivePtr", "StructHead", "StructHeadOmitEmpty", "StructHeadStringTag", "StructPtrHead", "StructPtrHeadOmitEmpty", "StructPtrHeadStringTag", "StructFieldInt", "StructFieldOmitEmptyInt", "StructFieldStringTagInt", "StructEndInt", "StructEndOmitEmptyInt", "StructEndStringTagInt", "StructFieldUint", "StructFieldOmitEmptyUint", "StructFieldStringTagUint", "StructEndUint", "StructEndOmitEmptyUint", "StructEndStringTagUint", "StructFieldFloat32", "StructFieldOmitEmptyFloat32", "StructFieldStringTagFloat32", "StructEndFloat32", "StructEndOmitEmptyFloat32", "StructEndStringTagFloat32", "StructFieldFloat64", "StructFieldOmitEmptyFloat64", "StructFieldStringTagFloat64", "StructEndFloat64", "StructEndOmitEmptyFloat64", "StructEndStringTagFloat64", "StructFieldBool", "StructFieldOmitEmptyBool", "StructFieldStringTagBool", "StructEndBool", "StructEndOmitEmptyBool", "StructEndStringTagBool", "StructFieldString", "StructFieldOmitEmptyString", "StructFieldStringTagString", "StructEndString", "StructEndOmitEmptyString", "StructEndStringTagString", "StructFieldBytes", "StructFieldOmitEmptyBytes", "StructFieldStringTagBytes", "StructEndBytes", "StructEndOmitEmptyBytes", "StructEndStringTagBytes", "StructFieldNumber", "StructFieldOmitEmptyNumber", "StructFieldStringTagNumber", "StructEndNumber", "StructEndOmitEmptyNumber", "StructEndStringTagNumber", "StructFieldArray", "StructFieldOmitEmptyArray", "StructFieldStringTagArray", "StructEndArray", "StructEndOmitEmptyArray", "StructEndStringTagArray", "StructFieldMap", "StructFieldOmitEmptyMap", "StructFieldStringTagMap", "StructEndMap", "StructEndOmitEmptyMap", "StructEndStringTagMap", "StructFieldSlice", "StructFieldOmitEmptySlice", "StructFieldStringTagSlice", "StructEndSlice", "StructEndOmitEmptySlice", "StructEndStringTagSlice", "StructFieldStruct", "StructFieldOmitEmptyStruct", "StructFieldStringTagStruct", "StructEndStruct", "StructEndOmitEmptyStruct", "StructEndStringTagStruct", "StructFieldMarshalJSON", "StructFieldOmitEmptyMarshalJSON", "StructFieldStringTagMarshalJSON", "StructEndMarshalJSON", "StructEndOmitEmptyMarshalJSON", "StructEndStringTagMarshalJSON", "StructFieldMarshalText", "StructFieldOmitEmptyMarshalText", "StructFieldStringTagMarshalText", "StructEndMarshalText", "StructEndOmitEmptyMarshalText", "StructEndStringTagMarshalText", "StructFieldRecursive", "StructFieldOmitEmptyRecursive", "StructFieldStringTagRecursive", "StructEndRecursive", "StructEndOmitEmptyRecursive", "StructEndStringTagRecursive", "StructFieldIntString", "StructFieldOmitEmptyIntString", "StructFieldStringTagIntString", "StructEndIntString", "StructEndOmitEmptyIntString", "StructEndStringTagIntString", "StructFieldUintString", "StructFieldOmitEmptyUintString", "StructFieldStringTagUintString", "StructEndUintString", "StructEndOmitEmptyUintString", "StructEndStringTagUintString", "StructFieldIntPtr", "StructFieldOmitEmptyIntPtr", "StructFieldStringTagIntPtr", "StructEndIntPtr", "StructEndOmitEmptyIntPtr", "StructEndStringTagIntPtr", "StructFieldUintPtr", "StructFieldOmitEmptyUintPtr", "StructFieldStringTagUintPtr", "StructEndUintPtr", "StructEndOmitEmptyUintPtr", "StructEndStringTagUintPtr", "StructFieldFloat32Ptr", "StructFieldOmitEmptyFloat32Ptr", "StructFieldStringTagFloat32Ptr", "StructEndFloat32Ptr", "StructEndOmitEmptyFloat32Ptr", "StructEndStringTagFloat32Ptr", "StructFieldFloat64Ptr", "StructFieldOmitEmptyFloat64Ptr", "StructFieldStringTagFloat64Ptr", "StructEndFloat64Ptr", "StructEndOmitEmptyFloat64Ptr", "StructEndStringTagFloat64Ptr", "StructFieldBoolPtr", "StructFieldOmitEmptyBoolPtr", "StructFieldStringTagBoolPtr", "StructEndBoolPtr", "StructEndOmitEmptyBoolPtr", "StructEndStringTagBoolPtr", "StructFieldStringPtr", "StructFieldOmitEmptyStringPtr", "StructFieldStringTagStringPtr", "StructEndStringPtr", "StructEndOmitEmptyStringPtr", "StructEndStringTagStringPtr", "StructFieldBytesPtr", "StructFieldOmitEmptyBytesPtr", "StructFieldStringTagBytesPtr", "StructEndBytesPtr", "StructEndOmitEmptyBytesPtr", "StructEndStringTagBytesPtr", "StructFieldNumberPtr", "StructFieldOmitEmptyNumberPtr", "StructFieldStringTagNumberPtr", "StructEndNumberPtr", "StructEndOmitEmptyNumberPtr", "StructEndStringTagNumberPtr", "StructFieldArrayPtr", "StructFieldOmitEmptyArrayPtr", "StructFieldStringTagArrayPtr", "StructEndArrayPtr", "StructEndOmitEmptyArrayPtr", "StructEndStringTagArrayPtr", "StructFieldMapPtr", "StructFieldOmitEmptyMapPtr", "StructFieldStringTagMapPtr", "StructEndMapPtr", "StructEndOmitEmptyMapPtr", "StructEndStringTagMapPtr", "StructFieldSlicePtr", "StructFieldOmitEmptySlicePtr", "StructFieldStringTagSlicePtr", "StructEndSlicePtr", "StructEndOmitEmptySlicePtr", "StructEndStringTagSlicePtr", "StructFieldMarshalJSONPtr", "StructFieldOmitEmptyMarshalJSONPtr", "StructFieldStringTagMarshalJSONPtr", "StructEndMarshalJSONPtr", "StructEndOmitEmptyMarshalJSONPtr", "StructEndStringTagMarshalJSONPtr", "StructFieldMarshalTextPtr", "StructFieldOmitEmptyMarshalTextPtr", "StructFieldStringTagMarshalTextPtr", "StructEndMarshalTextPtr", "StructEndOmitEmptyMarshalTextPtr", "StructEndStringTagMarshalTextPtr", "StructFieldInterfacePtr", "StructFieldOmitEmptyInterfacePtr", "StructFieldStringTagInterfacePtr", "StructEndInterfacePtr", "StructEndOmitEmptyInterfacePtr", "StructEndStringTagInterfacePtr", "StructFieldRecursivePtr", "StructFieldOmitEmptyRecursivePtr", "StructFieldStringTagRecursivePtr", "StructEndRecursivePtr", "StructEndOmitEmptyRecursivePtr", "StructEndStringTagRecursivePtr", "StructField", "StructFieldOmitEmpty", "StructFieldStringTag", "StructEnd", "StructEndOmitEmpty", "StructEndStringTag", } type OpType int const ( OpEnd OpType = 0 OpInterface OpType = 1 OpPtr OpType = 2 OpSliceElem OpType = 3 OpSliceEnd OpType = 4 OpArrayElem OpType = 5 OpArrayEnd OpType = 6 OpMapKey OpType = 7 OpMapValue OpType = 8 OpMapEnd OpType = 9 OpStructFieldRecursiveEnd OpType = 10 OpStructAnonymousEnd OpType = 11 OpInt OpType = 12 OpUint OpType = 13 OpFloat32 OpType = 14 OpFloat64 OpType = 15 OpBool OpType = 16 OpString OpType = 17 OpBytes OpType = 18 OpNumber OpType = 19 OpArray OpType = 20 OpMap OpType = 21 OpSlice OpType = 22 OpStruct OpType = 23 OpMarshalJSON OpType = 24 OpMarshalText OpType = 25 OpRecursive OpType = 26 OpIntString OpType = 27 OpUintString OpType = 28 OpIntPtr OpType = 29 OpUintPtr OpType = 30 OpFloat32Ptr OpType = 31 OpFloat64Ptr OpType = 32 OpBoolPtr OpType = 33 OpStringPtr OpType = 34 OpBytesPtr OpType = 35 OpNumberPtr OpType = 36 OpArrayPtr OpType = 37 OpMapPtr OpType = 38 OpSlicePtr OpType = 39 OpMarshalJSONPtr OpType = 40 OpMarshalTextPtr OpType = 41 OpInterfacePtr OpType = 42 OpRecursivePtr OpType = 43 OpStructHeadInt OpType = 44 OpStructHeadOmitEmptyInt OpType = 45 OpStructHeadStringTagInt OpType = 46 OpStructPtrHeadInt OpType = 47 OpStructPtrHeadOmitEmptyInt OpType = 48 OpStructPtrHeadStringTagInt OpType = 49 OpStructHeadUint OpType = 50 OpStructHeadOmitEmptyUint OpType = 51 OpStructHeadStringTagUint OpType = 52 OpStructPtrHeadUint OpType = 53 OpStructPtrHeadOmitEmptyUint OpType = 54 OpStructPtrHeadStringTagUint OpType = 55 OpStructHeadFloat32 OpType = 56 OpStructHeadOmitEmptyFloat32 OpType = 57 OpStructHeadStringTagFloat32 OpType = 58 OpStructPtrHeadFloat32 OpType = 59 OpStructPtrHeadOmitEmptyFloat32 OpType = 60 OpStructPtrHeadStringTagFloat32 OpType = 61 OpStructHeadFloat64 OpType = 62 OpStructHeadOmitEmptyFloat64 OpType = 63 OpStructHeadStringTagFloat64 OpType = 64 OpStructPtrHeadFloat64 OpType = 65 OpStructPtrHeadOmitEmptyFloat64 OpType = 66 OpStructPtrHeadStringTagFloat64 OpType = 67 OpStructHeadBool OpType = 68 OpStructHeadOmitEmptyBool OpType = 69 OpStructHeadStringTagBool OpType = 70 OpStructPtrHeadBool OpType = 71 OpStructPtrHeadOmitEmptyBool OpType = 72 OpStructPtrHeadStringTagBool OpType = 73 OpStructHeadString OpType = 74 OpStructHeadOmitEmptyString OpType = 75 OpStructHeadStringTagString OpType = 76 OpStructPtrHeadString OpType = 77 OpStructPtrHeadOmitEmptyString OpType = 78 OpStructPtrHeadStringTagString OpType = 79 OpStructHeadBytes OpType = 80 OpStructHeadOmitEmptyBytes OpType = 81 OpStructHeadStringTagBytes OpType = 82 OpStructPtrHeadBytes OpType = 83 OpStructPtrHeadOmitEmptyBytes OpType = 84 OpStructPtrHeadStringTagBytes OpType = 85 OpStructHeadNumber OpType = 86 OpStructHeadOmitEmptyNumber OpType = 87 OpStructHeadStringTagNumber OpType = 88 OpStructPtrHeadNumber OpType = 89 OpStructPtrHeadOmitEmptyNumber OpType = 90 OpStructPtrHeadStringTagNumber OpType = 91 OpStructHeadArray OpType = 92 OpStructHeadOmitEmptyArray OpType = 93 OpStructHeadStringTagArray OpType = 94 OpStructPtrHeadArray OpType = 95 OpStructPtrHeadOmitEmptyArray OpType = 96 OpStructPtrHeadStringTagArray OpType = 97 OpStructHeadMap OpType = 98 OpStructHeadOmitEmptyMap OpType = 99 OpStructHeadStringTagMap OpType = 100 OpStructPtrHeadMap OpType = 101 OpStructPtrHeadOmitEmptyMap OpType = 102 OpStructPtrHeadStringTagMap OpType = 103 OpStructHeadSlice OpType = 104 OpStructHeadOmitEmptySlice OpType = 105 OpStructHeadStringTagSlice OpType = 106 OpStructPtrHeadSlice OpType = 107 OpStructPtrHeadOmitEmptySlice OpType = 108 OpStructPtrHeadStringTagSlice OpType = 109 OpStructHeadStruct OpType = 110 OpStructHeadOmitEmptyStruct OpType = 111 OpStructHeadStringTagStruct OpType = 112 OpStructPtrHeadStruct OpType = 113 OpStructPtrHeadOmitEmptyStruct OpType = 114 OpStructPtrHeadStringTagStruct OpType = 115 OpStructHeadMarshalJSON OpType = 116 OpStructHeadOmitEmptyMarshalJSON OpType = 117 OpStructHeadStringTagMarshalJSON OpType = 118 OpStructPtrHeadMarshalJSON OpType = 119 OpStructPtrHeadOmitEmptyMarshalJSON OpType = 120 OpStructPtrHeadStringTagMarshalJSON OpType = 121 OpStructHeadMarshalText OpType = 122 OpStructHeadOmitEmptyMarshalText OpType = 123 OpStructHeadStringTagMarshalText OpType = 124 OpStructPtrHeadMarshalText OpType = 125 OpStructPtrHeadOmitEmptyMarshalText OpType = 126 OpStructPtrHeadStringTagMarshalText OpType = 127 OpStructHeadRecursive OpType = 128 OpStructHeadOmitEmptyRecursive OpType = 129 OpStructHeadStringTagRecursive OpType = 130 OpStructPtrHeadRecursive OpType = 131 OpStructPtrHeadOmitEmptyRecursive OpType = 132 OpStructPtrHeadStringTagRecursive OpType = 133 OpStructHeadIntString OpType = 134 OpStructHeadOmitEmptyIntString OpType = 135 OpStructHeadStringTagIntString OpType = 136 OpStructPtrHeadIntString OpType = 137 OpStructPtrHeadOmitEmptyIntString OpType = 138 OpStructPtrHeadStringTagIntString OpType = 139 OpStructHeadUintString OpType = 140 OpStructHeadOmitEmptyUintString OpType = 141 OpStructHeadStringTagUintString OpType = 142 OpStructPtrHeadUintString OpType = 143 OpStructPtrHeadOmitEmptyUintString OpType = 144 OpStructPtrHeadStringTagUintString OpType = 145 OpStructHeadIntPtr OpType = 146 OpStructHeadOmitEmptyIntPtr OpType = 147 OpStructHeadStringTagIntPtr OpType = 148 OpStructPtrHeadIntPtr OpType = 149 OpStructPtrHeadOmitEmptyIntPtr OpType = 150 OpStructPtrHeadStringTagIntPtr OpType = 151 OpStructHeadUintPtr OpType = 152 OpStructHeadOmitEmptyUintPtr OpType = 153 OpStructHeadStringTagUintPtr OpType = 154 OpStructPtrHeadUintPtr OpType = 155 OpStructPtrHeadOmitEmptyUintPtr OpType = 156 OpStructPtrHeadStringTagUintPtr OpType = 157 OpStructHeadFloat32Ptr OpType = 158 OpStructHeadOmitEmptyFloat32Ptr OpType = 159 OpStructHeadStringTagFloat32Ptr OpType = 160 OpStructPtrHeadFloat32Ptr OpType = 161 OpStructPtrHeadOmitEmptyFloat32Ptr OpType = 162 OpStructPtrHeadStringTagFloat32Ptr OpType = 163 OpStructHeadFloat64Ptr OpType = 164 OpStructHeadOmitEmptyFloat64Ptr OpType = 165 OpStructHeadStringTagFloat64Ptr OpType = 166 OpStructPtrHeadFloat64Ptr OpType = 167 OpStructPtrHeadOmitEmptyFloat64Ptr OpType = 168 OpStructPtrHeadStringTagFloat64Ptr OpType = 169 OpStructHeadBoolPtr OpType = 170 OpStructHeadOmitEmptyBoolPtr OpType = 171 OpStructHeadStringTagBoolPtr OpType = 172 OpStructPtrHeadBoolPtr OpType = 173 OpStructPtrHeadOmitEmptyBoolPtr OpType = 174 OpStructPtrHeadStringTagBoolPtr OpType = 175 OpStructHeadStringPtr OpType = 176 OpStructHeadOmitEmptyStringPtr OpType = 177 OpStructHeadStringTagStringPtr OpType = 178 OpStructPtrHeadStringPtr OpType = 179 OpStructPtrHeadOmitEmptyStringPtr OpType = 180 OpStructPtrHeadStringTagStringPtr OpType = 181 OpStructHeadBytesPtr OpType = 182 OpStructHeadOmitEmptyBytesPtr OpType = 183 OpStructHeadStringTagBytesPtr OpType = 184 OpStructPtrHeadBytesPtr OpType = 185 OpStructPtrHeadOmitEmptyBytesPtr OpType = 186 OpStructPtrHeadStringTagBytesPtr OpType = 187 OpStructHeadNumberPtr OpType = 188 OpStructHeadOmitEmptyNumberPtr OpType = 189 OpStructHeadStringTagNumberPtr OpType = 190 OpStructPtrHeadNumberPtr OpType = 191 OpStructPtrHeadOmitEmptyNumberPtr OpType = 192 OpStructPtrHeadStringTagNumberPtr OpType = 193 OpStructHeadArrayPtr OpType = 194 OpStructHeadOmitEmptyArrayPtr OpType = 195 OpStructHeadStringTagArrayPtr OpType = 196 OpStructPtrHeadArrayPtr OpType = 197 OpStructPtrHeadOmitEmptyArrayPtr OpType = 198 OpStructPtrHeadStringTagArrayPtr OpType = 199 OpStructHeadMapPtr OpType = 200 OpStructHeadOmitEmptyMapPtr OpType = 201 OpStructHeadStringTagMapPtr OpType = 202 OpStructPtrHeadMapPtr OpType = 203 OpStructPtrHeadOmitEmptyMapPtr OpType = 204 OpStructPtrHeadStringTagMapPtr OpType = 205 OpStructHeadSlicePtr OpType = 206 OpStructHeadOmitEmptySlicePtr OpType = 207 OpStructHeadStringTagSlicePtr OpType = 208 OpStructPtrHeadSlicePtr OpType = 209 OpStructPtrHeadOmitEmptySlicePtr OpType = 210 OpStructPtrHeadStringTagSlicePtr OpType = 211 OpStructHeadMarshalJSONPtr OpType = 212 OpStructHeadOmitEmptyMarshalJSONPtr OpType = 213 OpStructHeadStringTagMarshalJSONPtr OpType = 214 OpStructPtrHeadMarshalJSONPtr OpType = 215 OpStructPtrHeadOmitEmptyMarshalJSONPtr OpType = 216 OpStructPtrHeadStringTagMarshalJSONPtr OpType = 217 OpStructHeadMarshalTextPtr OpType = 218 OpStructHeadOmitEmptyMarshalTextPtr OpType = 219 OpStructHeadStringTagMarshalTextPtr OpType = 220 OpStructPtrHeadMarshalTextPtr OpType = 221 OpStructPtrHeadOmitEmptyMarshalTextPtr OpType = 222 OpStructPtrHeadStringTagMarshalTextPtr OpType = 223 OpStructHeadInterfacePtr OpType = 224 OpStructHeadOmitEmptyInterfacePtr OpType = 225 OpStructHeadStringTagInterfacePtr OpType = 226 OpStructPtrHeadInterfacePtr OpType = 227 OpStructPtrHeadOmitEmptyInterfacePtr OpType = 228 OpStructPtrHeadStringTagInterfacePtr OpType = 229 OpStructHeadRecursivePtr OpType = 230 OpStructHeadOmitEmptyRecursivePtr OpType = 231 OpStructHeadStringTagRecursivePtr OpType = 232 OpStructPtrHeadRecursivePtr OpType = 233 OpStructPtrHeadOmitEmptyRecursivePtr OpType = 234 OpStructPtrHeadStringTagRecursivePtr OpType = 235 OpStructHead OpType = 236 OpStructHeadOmitEmpty OpType = 237 OpStructHeadStringTag OpType = 238 OpStructPtrHead OpType = 239 OpStructPtrHeadOmitEmpty OpType = 240 OpStructPtrHeadStringTag OpType = 241 OpStructFieldInt OpType = 242 OpStructFieldOmitEmptyInt OpType = 243 OpStructFieldStringTagInt OpType = 244 OpStructEndInt OpType = 245 OpStructEndOmitEmptyInt OpType = 246 OpStructEndStringTagInt OpType = 247 OpStructFieldUint OpType = 248 OpStructFieldOmitEmptyUint OpType = 249 OpStructFieldStringTagUint OpType = 250 OpStructEndUint OpType = 251 OpStructEndOmitEmptyUint OpType = 252 OpStructEndStringTagUint OpType = 253 OpStructFieldFloat32 OpType = 254 OpStructFieldOmitEmptyFloat32 OpType = 255 OpStructFieldStringTagFloat32 OpType = 256 OpStructEndFloat32 OpType = 257 OpStructEndOmitEmptyFloat32 OpType = 258 OpStructEndStringTagFloat32 OpType = 259 OpStructFieldFloat64 OpType = 260 OpStructFieldOmitEmptyFloat64 OpType = 261 OpStructFieldStringTagFloat64 OpType = 262 OpStructEndFloat64 OpType = 263 OpStructEndOmitEmptyFloat64 OpType = 264 OpStructEndStringTagFloat64 OpType = 265 OpStructFieldBool OpType = 266 OpStructFieldOmitEmptyBool OpType = 267 OpStructFieldStringTagBool OpType = 268 OpStructEndBool OpType = 269 OpStructEndOmitEmptyBool OpType = 270 OpStructEndStringTagBool OpType = 271 OpStructFieldString OpType = 272 OpStructFieldOmitEmptyString OpType = 273 OpStructFieldStringTagString OpType = 274 OpStructEndString OpType = 275 OpStructEndOmitEmptyString OpType = 276 OpStructEndStringTagString OpType = 277 OpStructFieldBytes OpType = 278 OpStructFieldOmitEmptyBytes OpType = 279 OpStructFieldStringTagBytes OpType = 280 OpStructEndBytes OpType = 281 OpStructEndOmitEmptyBytes OpType = 282 OpStructEndStringTagBytes OpType = 283 OpStructFieldNumber OpType = 284 OpStructFieldOmitEmptyNumber OpType = 285 OpStructFieldStringTagNumber OpType = 286 OpStructEndNumber OpType = 287 OpStructEndOmitEmptyNumber OpType = 288 OpStructEndStringTagNumber OpType = 289 OpStructFieldArray OpType = 290 OpStructFieldOmitEmptyArray OpType = 291 OpStructFieldStringTagArray OpType = 292 OpStructEndArray OpType = 293 OpStructEndOmitEmptyArray OpType = 294 OpStructEndStringTagArray OpType = 295 OpStructFieldMap OpType = 296 OpStructFieldOmitEmptyMap OpType = 297 OpStructFieldStringTagMap OpType = 298 OpStructEndMap OpType = 299 OpStructEndOmitEmptyMap OpType = 300 OpStructEndStringTagMap OpType = 301 OpStructFieldSlice OpType = 302 OpStructFieldOmitEmptySlice OpType = 303 OpStructFieldStringTagSlice OpType = 304 OpStructEndSlice OpType = 305 OpStructEndOmitEmptySlice OpType = 306 OpStructEndStringTagSlice OpType = 307 OpStructFieldStruct OpType = 308 OpStructFieldOmitEmptyStruct OpType = 309 OpStructFieldStringTagStruct OpType = 310 OpStructEndStruct OpType = 311 OpStructEndOmitEmptyStruct OpType = 312 OpStructEndStringTagStruct OpType = 313 OpStructFieldMarshalJSON OpType = 314 OpStructFieldOmitEmptyMarshalJSON OpType = 315 OpStructFieldStringTagMarshalJSON OpType = 316 OpStructEndMarshalJSON OpType = 317 OpStructEndOmitEmptyMarshalJSON OpType = 318 OpStructEndStringTagMarshalJSON OpType = 319 OpStructFieldMarshalText OpType = 320 OpStructFieldOmitEmptyMarshalText OpType = 321 OpStructFieldStringTagMarshalText OpType = 322 OpStructEndMarshalText OpType = 323 OpStructEndOmitEmptyMarshalText OpType = 324 OpStructEndStringTagMarshalText OpType = 325 OpStructFieldRecursive OpType = 326 OpStructFieldOmitEmptyRecursive OpType = 327 OpStructFieldStringTagRecursive OpType = 328 OpStructEndRecursive OpType = 329 OpStructEndOmitEmptyRecursive OpType = 330 OpStructEndStringTagRecursive OpType = 331 OpStructFieldIntString OpType = 332 OpStructFieldOmitEmptyIntString OpType = 333 OpStructFieldStringTagIntString OpType = 334 OpStructEndIntString OpType = 335 OpStructEndOmitEmptyIntString OpType = 336 OpStructEndStringTagIntString OpType = 337 OpStructFieldUintString OpType = 338 OpStructFieldOmitEmptyUintString OpType = 339 OpStructFieldStringTagUintString OpType = 340 OpStructEndUintString OpType = 341 OpStructEndOmitEmptyUintString OpType = 342 OpStructEndStringTagUintString OpType = 343 OpStructFieldIntPtr OpType = 344 OpStructFieldOmitEmptyIntPtr OpType = 345 OpStructFieldStringTagIntPtr OpType = 346 OpStructEndIntPtr OpType = 347 OpStructEndOmitEmptyIntPtr OpType = 348 OpStructEndStringTagIntPtr OpType = 349 OpStructFieldUintPtr OpType = 350 OpStructFieldOmitEmptyUintPtr OpType = 351 OpStructFieldStringTagUintPtr OpType = 352 OpStructEndUintPtr OpType = 353 OpStructEndOmitEmptyUintPtr OpType = 354 OpStructEndStringTagUintPtr OpType = 355 OpStructFieldFloat32Ptr OpType = 356 OpStructFieldOmitEmptyFloat32Ptr OpType = 357 OpStructFieldStringTagFloat32Ptr OpType = 358 OpStructEndFloat32Ptr OpType = 359 OpStructEndOmitEmptyFloat32Ptr OpType = 360 OpStructEndStringTagFloat32Ptr OpType = 361 OpStructFieldFloat64Ptr OpType = 362 OpStructFieldOmitEmptyFloat64Ptr OpType = 363 OpStructFieldStringTagFloat64Ptr OpType = 364 OpStructEndFloat64Ptr OpType = 365 OpStructEndOmitEmptyFloat64Ptr OpType = 366 OpStructEndStringTagFloat64Ptr OpType = 367 OpStructFieldBoolPtr OpType = 368 OpStructFieldOmitEmptyBoolPtr OpType = 369 OpStructFieldStringTagBoolPtr OpType = 370 OpStructEndBoolPtr OpType = 371 OpStructEndOmitEmptyBoolPtr OpType = 372 OpStructEndStringTagBoolPtr OpType = 373 OpStructFieldStringPtr OpType = 374 OpStructFieldOmitEmptyStringPtr OpType = 375 OpStructFieldStringTagStringPtr OpType = 376 OpStructEndStringPtr OpType = 377 OpStructEndOmitEmptyStringPtr OpType = 378 OpStructEndStringTagStringPtr OpType = 379 OpStructFieldBytesPtr OpType = 380 OpStructFieldOmitEmptyBytesPtr OpType = 381 OpStructFieldStringTagBytesPtr OpType = 382 OpStructEndBytesPtr OpType = 383 OpStructEndOmitEmptyBytesPtr OpType = 384 OpStructEndStringTagBytesPtr OpType = 385 OpStructFieldNumberPtr OpType = 386 OpStructFieldOmitEmptyNumberPtr OpType = 387 OpStructFieldStringTagNumberPtr OpType = 388 OpStructEndNumberPtr OpType = 389 OpStructEndOmitEmptyNumberPtr OpType = 390 OpStructEndStringTagNumberPtr OpType = 391 OpStructFieldArrayPtr OpType = 392 OpStructFieldOmitEmptyArrayPtr OpType = 393 OpStructFieldStringTagArrayPtr OpType = 394 OpStructEndArrayPtr OpType = 395 OpStructEndOmitEmptyArrayPtr OpType = 396 OpStructEndStringTagArrayPtr OpType = 397 OpStructFieldMapPtr OpType = 398 OpStructFieldOmitEmptyMapPtr OpType = 399 OpStructFieldStringTagMapPtr OpType = 400 OpStructEndMapPtr OpType = 401 OpStructEndOmitEmptyMapPtr OpType = 402 OpStructEndStringTagMapPtr OpType = 403 OpStructFieldSlicePtr OpType = 404 OpStructFieldOmitEmptySlicePtr OpType = 405 OpStructFieldStringTagSlicePtr OpType = 406 OpStructEndSlicePtr OpType = 407 OpStructEndOmitEmptySlicePtr OpType = 408 OpStructEndStringTagSlicePtr OpType = 409 OpStructFieldMarshalJSONPtr OpType = 410 OpStructFieldOmitEmptyMarshalJSONPtr OpType = 411 OpStructFieldStringTagMarshalJSONPtr OpType = 412 OpStructEndMarshalJSONPtr OpType = 413 OpStructEndOmitEmptyMarshalJSONPtr OpType = 414 OpStructEndStringTagMarshalJSONPtr 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 { if int(t) >= 440 { 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 } switch t { case OpArray, OpArrayPtr: return CodeArrayHead case OpArrayElem: return CodeArrayElem case OpSlice, OpSlicePtr: return CodeSliceHead case OpSliceElem: return CodeSliceElem case OpMap, OpMapPtr: return CodeMapHead case OpMapKey: return CodeMapKey case OpMapValue: return CodeMapValue case OpMapEnd: return CodeMapEnd } return CodeOp } func (t OpType) HeadToPtrHead() OpType { if strings.Index(t.String(), "PtrHead") > 0 { return t } idx := strings.Index(t.String(), "Head") if idx == -1 { return t } suffix := "PtrHead" + t.String()[idx+len("Head"):] 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 { idx := strings.Index(t.String(), "Field") if idx == -1 { return t } suffix := t.String()[idx+len("Field"):] if suffix == "" || suffix == "OmitEmpty" || suffix == "StringTag" { return t } const toEndOffset = 3 if strings.Contains(OpType(int(t)+toEndOffset).String(), "End"+suffix) { return OpType(int(t) + toEndOffset) } 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 }