// 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 CodeRecursive CodeType = 9 CodeStructField CodeType = 10 CodeStructEnd CodeType = 11 ) var opTypeStrings = [416]string{ "End", "Interface", "Ptr", "SliceElem", "SliceEnd", "ArrayElem", "ArrayEnd", "MapKey", "MapValue", "MapEnd", "Recursive", "RecursivePtr", "RecursiveEnd", "StructAnonymousEnd", "Int", "Uint", "Float32", "Float64", "Bool", "String", "Bytes", "Number", "Array", "Map", "Slice", "Struct", "MarshalJSON", "MarshalText", "IntString", "UintString", "IntPtr", "UintPtr", "Float32Ptr", "Float64Ptr", "BoolPtr", "StringPtr", "BytesPtr", "NumberPtr", "ArrayPtr", "MapPtr", "SlicePtr", "MarshalJSONPtr", "MarshalTextPtr", "InterfacePtr", "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", "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", "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", "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", "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 OpRecursive OpType = 10 OpRecursivePtr OpType = 11 OpRecursiveEnd OpType = 12 OpStructAnonymousEnd OpType = 13 OpInt OpType = 14 OpUint OpType = 15 OpFloat32 OpType = 16 OpFloat64 OpType = 17 OpBool OpType = 18 OpString OpType = 19 OpBytes OpType = 20 OpNumber OpType = 21 OpArray OpType = 22 OpMap OpType = 23 OpSlice OpType = 24 OpStruct OpType = 25 OpMarshalJSON OpType = 26 OpMarshalText OpType = 27 OpIntString OpType = 28 OpUintString OpType = 29 OpIntPtr OpType = 30 OpUintPtr OpType = 31 OpFloat32Ptr OpType = 32 OpFloat64Ptr OpType = 33 OpBoolPtr OpType = 34 OpStringPtr OpType = 35 OpBytesPtr OpType = 36 OpNumberPtr OpType = 37 OpArrayPtr OpType = 38 OpMapPtr OpType = 39 OpSlicePtr OpType = 40 OpMarshalJSONPtr OpType = 41 OpMarshalTextPtr OpType = 42 OpInterfacePtr 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 OpStructHeadIntString OpType = 128 OpStructHeadOmitEmptyIntString OpType = 129 OpStructHeadStringTagIntString OpType = 130 OpStructPtrHeadIntString OpType = 131 OpStructPtrHeadOmitEmptyIntString OpType = 132 OpStructPtrHeadStringTagIntString OpType = 133 OpStructHeadUintString OpType = 134 OpStructHeadOmitEmptyUintString OpType = 135 OpStructHeadStringTagUintString OpType = 136 OpStructPtrHeadUintString OpType = 137 OpStructPtrHeadOmitEmptyUintString OpType = 138 OpStructPtrHeadStringTagUintString OpType = 139 OpStructHeadIntPtr OpType = 140 OpStructHeadOmitEmptyIntPtr OpType = 141 OpStructHeadStringTagIntPtr OpType = 142 OpStructPtrHeadIntPtr OpType = 143 OpStructPtrHeadOmitEmptyIntPtr OpType = 144 OpStructPtrHeadStringTagIntPtr OpType = 145 OpStructHeadUintPtr OpType = 146 OpStructHeadOmitEmptyUintPtr OpType = 147 OpStructHeadStringTagUintPtr OpType = 148 OpStructPtrHeadUintPtr OpType = 149 OpStructPtrHeadOmitEmptyUintPtr OpType = 150 OpStructPtrHeadStringTagUintPtr OpType = 151 OpStructHeadFloat32Ptr OpType = 152 OpStructHeadOmitEmptyFloat32Ptr OpType = 153 OpStructHeadStringTagFloat32Ptr OpType = 154 OpStructPtrHeadFloat32Ptr OpType = 155 OpStructPtrHeadOmitEmptyFloat32Ptr OpType = 156 OpStructPtrHeadStringTagFloat32Ptr OpType = 157 OpStructHeadFloat64Ptr OpType = 158 OpStructHeadOmitEmptyFloat64Ptr OpType = 159 OpStructHeadStringTagFloat64Ptr OpType = 160 OpStructPtrHeadFloat64Ptr OpType = 161 OpStructPtrHeadOmitEmptyFloat64Ptr OpType = 162 OpStructPtrHeadStringTagFloat64Ptr OpType = 163 OpStructHeadBoolPtr OpType = 164 OpStructHeadOmitEmptyBoolPtr OpType = 165 OpStructHeadStringTagBoolPtr OpType = 166 OpStructPtrHeadBoolPtr OpType = 167 OpStructPtrHeadOmitEmptyBoolPtr OpType = 168 OpStructPtrHeadStringTagBoolPtr OpType = 169 OpStructHeadStringPtr OpType = 170 OpStructHeadOmitEmptyStringPtr OpType = 171 OpStructHeadStringTagStringPtr OpType = 172 OpStructPtrHeadStringPtr OpType = 173 OpStructPtrHeadOmitEmptyStringPtr OpType = 174 OpStructPtrHeadStringTagStringPtr OpType = 175 OpStructHeadBytesPtr OpType = 176 OpStructHeadOmitEmptyBytesPtr OpType = 177 OpStructHeadStringTagBytesPtr OpType = 178 OpStructPtrHeadBytesPtr OpType = 179 OpStructPtrHeadOmitEmptyBytesPtr OpType = 180 OpStructPtrHeadStringTagBytesPtr OpType = 181 OpStructHeadNumberPtr OpType = 182 OpStructHeadOmitEmptyNumberPtr OpType = 183 OpStructHeadStringTagNumberPtr OpType = 184 OpStructPtrHeadNumberPtr OpType = 185 OpStructPtrHeadOmitEmptyNumberPtr OpType = 186 OpStructPtrHeadStringTagNumberPtr OpType = 187 OpStructHeadArrayPtr OpType = 188 OpStructHeadOmitEmptyArrayPtr OpType = 189 OpStructHeadStringTagArrayPtr OpType = 190 OpStructPtrHeadArrayPtr OpType = 191 OpStructPtrHeadOmitEmptyArrayPtr OpType = 192 OpStructPtrHeadStringTagArrayPtr OpType = 193 OpStructHeadMapPtr OpType = 194 OpStructHeadOmitEmptyMapPtr OpType = 195 OpStructHeadStringTagMapPtr OpType = 196 OpStructPtrHeadMapPtr OpType = 197 OpStructPtrHeadOmitEmptyMapPtr OpType = 198 OpStructPtrHeadStringTagMapPtr OpType = 199 OpStructHeadSlicePtr OpType = 200 OpStructHeadOmitEmptySlicePtr OpType = 201 OpStructHeadStringTagSlicePtr OpType = 202 OpStructPtrHeadSlicePtr OpType = 203 OpStructPtrHeadOmitEmptySlicePtr OpType = 204 OpStructPtrHeadStringTagSlicePtr OpType = 205 OpStructHeadMarshalJSONPtr OpType = 206 OpStructHeadOmitEmptyMarshalJSONPtr OpType = 207 OpStructHeadStringTagMarshalJSONPtr OpType = 208 OpStructPtrHeadMarshalJSONPtr OpType = 209 OpStructPtrHeadOmitEmptyMarshalJSONPtr OpType = 210 OpStructPtrHeadStringTagMarshalJSONPtr OpType = 211 OpStructHeadMarshalTextPtr OpType = 212 OpStructHeadOmitEmptyMarshalTextPtr OpType = 213 OpStructHeadStringTagMarshalTextPtr OpType = 214 OpStructPtrHeadMarshalTextPtr OpType = 215 OpStructPtrHeadOmitEmptyMarshalTextPtr OpType = 216 OpStructPtrHeadStringTagMarshalTextPtr OpType = 217 OpStructHeadInterfacePtr OpType = 218 OpStructHeadOmitEmptyInterfacePtr OpType = 219 OpStructHeadStringTagInterfacePtr OpType = 220 OpStructPtrHeadInterfacePtr OpType = 221 OpStructPtrHeadOmitEmptyInterfacePtr OpType = 222 OpStructPtrHeadStringTagInterfacePtr OpType = 223 OpStructHead OpType = 224 OpStructHeadOmitEmpty OpType = 225 OpStructHeadStringTag OpType = 226 OpStructPtrHead OpType = 227 OpStructPtrHeadOmitEmpty OpType = 228 OpStructPtrHeadStringTag OpType = 229 OpStructFieldInt OpType = 230 OpStructFieldOmitEmptyInt OpType = 231 OpStructFieldStringTagInt OpType = 232 OpStructEndInt OpType = 233 OpStructEndOmitEmptyInt OpType = 234 OpStructEndStringTagInt OpType = 235 OpStructFieldUint OpType = 236 OpStructFieldOmitEmptyUint OpType = 237 OpStructFieldStringTagUint OpType = 238 OpStructEndUint OpType = 239 OpStructEndOmitEmptyUint OpType = 240 OpStructEndStringTagUint OpType = 241 OpStructFieldFloat32 OpType = 242 OpStructFieldOmitEmptyFloat32 OpType = 243 OpStructFieldStringTagFloat32 OpType = 244 OpStructEndFloat32 OpType = 245 OpStructEndOmitEmptyFloat32 OpType = 246 OpStructEndStringTagFloat32 OpType = 247 OpStructFieldFloat64 OpType = 248 OpStructFieldOmitEmptyFloat64 OpType = 249 OpStructFieldStringTagFloat64 OpType = 250 OpStructEndFloat64 OpType = 251 OpStructEndOmitEmptyFloat64 OpType = 252 OpStructEndStringTagFloat64 OpType = 253 OpStructFieldBool OpType = 254 OpStructFieldOmitEmptyBool OpType = 255 OpStructFieldStringTagBool OpType = 256 OpStructEndBool OpType = 257 OpStructEndOmitEmptyBool OpType = 258 OpStructEndStringTagBool OpType = 259 OpStructFieldString OpType = 260 OpStructFieldOmitEmptyString OpType = 261 OpStructFieldStringTagString OpType = 262 OpStructEndString OpType = 263 OpStructEndOmitEmptyString OpType = 264 OpStructEndStringTagString OpType = 265 OpStructFieldBytes OpType = 266 OpStructFieldOmitEmptyBytes OpType = 267 OpStructFieldStringTagBytes OpType = 268 OpStructEndBytes OpType = 269 OpStructEndOmitEmptyBytes OpType = 270 OpStructEndStringTagBytes OpType = 271 OpStructFieldNumber OpType = 272 OpStructFieldOmitEmptyNumber OpType = 273 OpStructFieldStringTagNumber OpType = 274 OpStructEndNumber OpType = 275 OpStructEndOmitEmptyNumber OpType = 276 OpStructEndStringTagNumber OpType = 277 OpStructFieldArray OpType = 278 OpStructFieldOmitEmptyArray OpType = 279 OpStructFieldStringTagArray OpType = 280 OpStructEndArray OpType = 281 OpStructEndOmitEmptyArray OpType = 282 OpStructEndStringTagArray OpType = 283 OpStructFieldMap OpType = 284 OpStructFieldOmitEmptyMap OpType = 285 OpStructFieldStringTagMap OpType = 286 OpStructEndMap OpType = 287 OpStructEndOmitEmptyMap OpType = 288 OpStructEndStringTagMap OpType = 289 OpStructFieldSlice OpType = 290 OpStructFieldOmitEmptySlice OpType = 291 OpStructFieldStringTagSlice OpType = 292 OpStructEndSlice OpType = 293 OpStructEndOmitEmptySlice OpType = 294 OpStructEndStringTagSlice OpType = 295 OpStructFieldStruct OpType = 296 OpStructFieldOmitEmptyStruct OpType = 297 OpStructFieldStringTagStruct OpType = 298 OpStructEndStruct OpType = 299 OpStructEndOmitEmptyStruct OpType = 300 OpStructEndStringTagStruct OpType = 301 OpStructFieldMarshalJSON OpType = 302 OpStructFieldOmitEmptyMarshalJSON OpType = 303 OpStructFieldStringTagMarshalJSON OpType = 304 OpStructEndMarshalJSON OpType = 305 OpStructEndOmitEmptyMarshalJSON OpType = 306 OpStructEndStringTagMarshalJSON OpType = 307 OpStructFieldMarshalText OpType = 308 OpStructFieldOmitEmptyMarshalText OpType = 309 OpStructFieldStringTagMarshalText OpType = 310 OpStructEndMarshalText OpType = 311 OpStructEndOmitEmptyMarshalText OpType = 312 OpStructEndStringTagMarshalText OpType = 313 OpStructFieldIntString OpType = 314 OpStructFieldOmitEmptyIntString OpType = 315 OpStructFieldStringTagIntString OpType = 316 OpStructEndIntString OpType = 317 OpStructEndOmitEmptyIntString OpType = 318 OpStructEndStringTagIntString OpType = 319 OpStructFieldUintString OpType = 320 OpStructFieldOmitEmptyUintString OpType = 321 OpStructFieldStringTagUintString OpType = 322 OpStructEndUintString OpType = 323 OpStructEndOmitEmptyUintString OpType = 324 OpStructEndStringTagUintString OpType = 325 OpStructFieldIntPtr OpType = 326 OpStructFieldOmitEmptyIntPtr OpType = 327 OpStructFieldStringTagIntPtr OpType = 328 OpStructEndIntPtr OpType = 329 OpStructEndOmitEmptyIntPtr OpType = 330 OpStructEndStringTagIntPtr OpType = 331 OpStructFieldUintPtr OpType = 332 OpStructFieldOmitEmptyUintPtr OpType = 333 OpStructFieldStringTagUintPtr OpType = 334 OpStructEndUintPtr OpType = 335 OpStructEndOmitEmptyUintPtr OpType = 336 OpStructEndStringTagUintPtr OpType = 337 OpStructFieldFloat32Ptr OpType = 338 OpStructFieldOmitEmptyFloat32Ptr OpType = 339 OpStructFieldStringTagFloat32Ptr OpType = 340 OpStructEndFloat32Ptr OpType = 341 OpStructEndOmitEmptyFloat32Ptr OpType = 342 OpStructEndStringTagFloat32Ptr OpType = 343 OpStructFieldFloat64Ptr OpType = 344 OpStructFieldOmitEmptyFloat64Ptr OpType = 345 OpStructFieldStringTagFloat64Ptr OpType = 346 OpStructEndFloat64Ptr OpType = 347 OpStructEndOmitEmptyFloat64Ptr OpType = 348 OpStructEndStringTagFloat64Ptr OpType = 349 OpStructFieldBoolPtr OpType = 350 OpStructFieldOmitEmptyBoolPtr OpType = 351 OpStructFieldStringTagBoolPtr OpType = 352 OpStructEndBoolPtr OpType = 353 OpStructEndOmitEmptyBoolPtr OpType = 354 OpStructEndStringTagBoolPtr OpType = 355 OpStructFieldStringPtr OpType = 356 OpStructFieldOmitEmptyStringPtr OpType = 357 OpStructFieldStringTagStringPtr OpType = 358 OpStructEndStringPtr OpType = 359 OpStructEndOmitEmptyStringPtr OpType = 360 OpStructEndStringTagStringPtr OpType = 361 OpStructFieldBytesPtr OpType = 362 OpStructFieldOmitEmptyBytesPtr OpType = 363 OpStructFieldStringTagBytesPtr OpType = 364 OpStructEndBytesPtr OpType = 365 OpStructEndOmitEmptyBytesPtr OpType = 366 OpStructEndStringTagBytesPtr OpType = 367 OpStructFieldNumberPtr OpType = 368 OpStructFieldOmitEmptyNumberPtr OpType = 369 OpStructFieldStringTagNumberPtr OpType = 370 OpStructEndNumberPtr OpType = 371 OpStructEndOmitEmptyNumberPtr OpType = 372 OpStructEndStringTagNumberPtr OpType = 373 OpStructFieldArrayPtr OpType = 374 OpStructFieldOmitEmptyArrayPtr OpType = 375 OpStructFieldStringTagArrayPtr OpType = 376 OpStructEndArrayPtr OpType = 377 OpStructEndOmitEmptyArrayPtr OpType = 378 OpStructEndStringTagArrayPtr OpType = 379 OpStructFieldMapPtr OpType = 380 OpStructFieldOmitEmptyMapPtr OpType = 381 OpStructFieldStringTagMapPtr OpType = 382 OpStructEndMapPtr OpType = 383 OpStructEndOmitEmptyMapPtr OpType = 384 OpStructEndStringTagMapPtr OpType = 385 OpStructFieldSlicePtr OpType = 386 OpStructFieldOmitEmptySlicePtr OpType = 387 OpStructFieldStringTagSlicePtr OpType = 388 OpStructEndSlicePtr OpType = 389 OpStructEndOmitEmptySlicePtr OpType = 390 OpStructEndStringTagSlicePtr OpType = 391 OpStructFieldMarshalJSONPtr OpType = 392 OpStructFieldOmitEmptyMarshalJSONPtr OpType = 393 OpStructFieldStringTagMarshalJSONPtr OpType = 394 OpStructEndMarshalJSONPtr OpType = 395 OpStructEndOmitEmptyMarshalJSONPtr OpType = 396 OpStructEndStringTagMarshalJSONPtr OpType = 397 OpStructFieldMarshalTextPtr OpType = 398 OpStructFieldOmitEmptyMarshalTextPtr OpType = 399 OpStructFieldStringTagMarshalTextPtr OpType = 400 OpStructEndMarshalTextPtr OpType = 401 OpStructEndOmitEmptyMarshalTextPtr OpType = 402 OpStructEndStringTagMarshalTextPtr OpType = 403 OpStructFieldInterfacePtr OpType = 404 OpStructFieldOmitEmptyInterfacePtr OpType = 405 OpStructFieldStringTagInterfacePtr OpType = 406 OpStructEndInterfacePtr OpType = 407 OpStructEndOmitEmptyInterfacePtr OpType = 408 OpStructEndStringTagInterfacePtr OpType = 409 OpStructField OpType = 410 OpStructFieldOmitEmpty OpType = 411 OpStructFieldStringTag OpType = 412 OpStructEnd OpType = 413 OpStructEndOmitEmpty OpType = 414 OpStructEndStringTag OpType = 415 ) func (t OpType) String() string { if int(t) >= 416 { 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 }