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