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