// 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 = [429]string{ "End", "Interface", "Ptr", "RootSliceHead", "SliceElem", "RootSliceElem", "SliceEnd", "ArrayElem", "ArrayEnd", "MapKey", "MapValue", "MapEnd", "StructFieldRecursiveEnd", "StructAnonymousEnd", "Int", "Uint", "Float32", "Float64", "Bool", "String", "Bytes", "Number", "Array", "Map", "Slice", "Struct", "MarshalJSON", "MarshalText", "Recursive", "IntString", "UintString", "IntPtr", "UintPtr", "Float32Ptr", "Float64Ptr", "BoolPtr", "StringPtr", "BytesPtr", "NumberPtr", "ArrayPtr", "MapPtr", "SlicePtr", "MarshalJSONPtr", "MarshalTextPtr", "InterfacePtr", "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", "StructFieldHeadNumber", "StructFieldHeadOmitEmptyNumber", "StructFieldHeadStringTagNumber", "StructFieldPtrHeadNumber", "StructFieldPtrHeadOmitEmptyNumber", "StructFieldPtrHeadStringTagNumber", "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", "StructFieldHeadNumberPtr", "StructFieldHeadOmitEmptyNumberPtr", "StructFieldHeadStringTagNumberPtr", "StructFieldPtrHeadNumberPtr", "StructFieldPtrHeadOmitEmptyNumberPtr", "StructFieldPtrHeadStringTagNumberPtr", "StructFieldHeadArrayPtr", "StructFieldHeadOmitEmptyArrayPtr", "StructFieldHeadStringTagArrayPtr", "StructFieldPtrHeadArrayPtr", "StructFieldPtrHeadOmitEmptyArrayPtr", "StructFieldPtrHeadStringTagArrayPtr", "StructFieldHeadMapPtr", "StructFieldHeadOmitEmptyMapPtr", "StructFieldHeadStringTagMapPtr", "StructFieldPtrHeadMapPtr", "StructFieldPtrHeadOmitEmptyMapPtr", "StructFieldPtrHeadStringTagMapPtr", "StructFieldHeadSlicePtr", "StructFieldHeadOmitEmptySlicePtr", "StructFieldHeadStringTagSlicePtr", "StructFieldPtrHeadSlicePtr", "StructFieldPtrHeadOmitEmptySlicePtr", "StructFieldPtrHeadStringTagSlicePtr", "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", "StructFieldNumber", "StructFieldOmitEmptyNumber", "StructFieldStringTagNumber", "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", "StructFieldNumberPtr", "StructFieldOmitEmptyNumberPtr", "StructFieldStringTagNumberPtr", "StructFieldArrayPtr", "StructFieldOmitEmptyArrayPtr", "StructFieldStringTagArrayPtr", "StructFieldMapPtr", "StructFieldOmitEmptyMapPtr", "StructFieldStringTagMapPtr", "StructFieldSlicePtr", "StructFieldOmitEmptySlicePtr", "StructFieldStringTagSlicePtr", "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", "StructEndNumber", "StructEndOmitEmptyNumber", "StructEndStringTagNumber", "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", "StructEndNumberPtr", "StructEndOmitEmptyNumberPtr", "StructEndStringTagNumberPtr", "StructEndArrayPtr", "StructEndOmitEmptyArrayPtr", "StructEndStringTagArrayPtr", "StructEndMapPtr", "StructEndOmitEmptyMapPtr", "StructEndStringTagMapPtr", "StructEndSlicePtr", "StructEndOmitEmptySlicePtr", "StructEndStringTagSlicePtr", "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 opNumber opType = 21 opArray opType = 22 opMap opType = 23 opSlice opType = 24 opStruct opType = 25 opMarshalJSON opType = 26 opMarshalText opType = 27 opRecursive opType = 28 opIntString opType = 29 opUintString opType = 30 opIntPtr opType = 31 opUintPtr opType = 32 opFloat32Ptr opType = 33 opFloat64Ptr opType = 34 opBoolPtr opType = 35 opStringPtr opType = 36 opBytesPtr opType = 37 opNumberPtr opType = 38 opArrayPtr opType = 39 opMapPtr opType = 40 opSlicePtr 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 opStructFieldHeadNumber opType = 87 opStructFieldHeadOmitEmptyNumber opType = 88 opStructFieldHeadStringTagNumber opType = 89 opStructFieldPtrHeadNumber opType = 90 opStructFieldPtrHeadOmitEmptyNumber opType = 91 opStructFieldPtrHeadStringTagNumber opType = 92 opStructFieldHeadArray opType = 93 opStructFieldHeadOmitEmptyArray opType = 94 opStructFieldHeadStringTagArray opType = 95 opStructFieldPtrHeadArray opType = 96 opStructFieldPtrHeadOmitEmptyArray opType = 97 opStructFieldPtrHeadStringTagArray opType = 98 opStructFieldHeadMap opType = 99 opStructFieldHeadOmitEmptyMap opType = 100 opStructFieldHeadStringTagMap opType = 101 opStructFieldPtrHeadMap opType = 102 opStructFieldPtrHeadOmitEmptyMap opType = 103 opStructFieldPtrHeadStringTagMap 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 opStructFieldHeadNumberPtr opType = 189 opStructFieldHeadOmitEmptyNumberPtr opType = 190 opStructFieldHeadStringTagNumberPtr opType = 191 opStructFieldPtrHeadNumberPtr opType = 192 opStructFieldPtrHeadOmitEmptyNumberPtr opType = 193 opStructFieldPtrHeadStringTagNumberPtr opType = 194 opStructFieldHeadArrayPtr opType = 195 opStructFieldHeadOmitEmptyArrayPtr opType = 196 opStructFieldHeadStringTagArrayPtr opType = 197 opStructFieldPtrHeadArrayPtr opType = 198 opStructFieldPtrHeadOmitEmptyArrayPtr opType = 199 opStructFieldPtrHeadStringTagArrayPtr opType = 200 opStructFieldHeadMapPtr opType = 201 opStructFieldHeadOmitEmptyMapPtr opType = 202 opStructFieldHeadStringTagMapPtr opType = 203 opStructFieldPtrHeadMapPtr opType = 204 opStructFieldPtrHeadOmitEmptyMapPtr opType = 205 opStructFieldPtrHeadStringTagMapPtr opType = 206 opStructFieldHeadSlicePtr opType = 207 opStructFieldHeadOmitEmptySlicePtr opType = 208 opStructFieldHeadStringTagSlicePtr opType = 209 opStructFieldPtrHeadSlicePtr opType = 210 opStructFieldPtrHeadOmitEmptySlicePtr opType = 211 opStructFieldPtrHeadStringTagSlicePtr opType = 212 opStructFieldHeadMarshalJSONPtr opType = 213 opStructFieldHeadOmitEmptyMarshalJSONPtr opType = 214 opStructFieldHeadStringTagMarshalJSONPtr opType = 215 opStructFieldPtrHeadMarshalJSONPtr opType = 216 opStructFieldPtrHeadOmitEmptyMarshalJSONPtr opType = 217 opStructFieldPtrHeadStringTagMarshalJSONPtr opType = 218 opStructFieldHeadMarshalTextPtr opType = 219 opStructFieldHeadOmitEmptyMarshalTextPtr opType = 220 opStructFieldHeadStringTagMarshalTextPtr opType = 221 opStructFieldPtrHeadMarshalTextPtr opType = 222 opStructFieldPtrHeadOmitEmptyMarshalTextPtr opType = 223 opStructFieldPtrHeadStringTagMarshalTextPtr opType = 224 opStructFieldHeadInterfacePtr opType = 225 opStructFieldHeadOmitEmptyInterfacePtr opType = 226 opStructFieldHeadStringTagInterfacePtr opType = 227 opStructFieldPtrHeadInterfacePtr opType = 228 opStructFieldPtrHeadOmitEmptyInterfacePtr opType = 229 opStructFieldPtrHeadStringTagInterfacePtr opType = 230 opStructFieldHead opType = 231 opStructFieldHeadOmitEmpty opType = 232 opStructFieldHeadStringTag opType = 233 opStructFieldPtrHead opType = 234 opStructFieldPtrHeadOmitEmpty opType = 235 opStructFieldPtrHeadStringTag opType = 236 opStructFieldInt opType = 237 opStructFieldOmitEmptyInt opType = 238 opStructFieldStringTagInt opType = 239 opStructFieldUint opType = 240 opStructFieldOmitEmptyUint opType = 241 opStructFieldStringTagUint opType = 242 opStructFieldFloat32 opType = 243 opStructFieldOmitEmptyFloat32 opType = 244 opStructFieldStringTagFloat32 opType = 245 opStructFieldFloat64 opType = 246 opStructFieldOmitEmptyFloat64 opType = 247 opStructFieldStringTagFloat64 opType = 248 opStructFieldBool opType = 249 opStructFieldOmitEmptyBool opType = 250 opStructFieldStringTagBool opType = 251 opStructFieldString opType = 252 opStructFieldOmitEmptyString opType = 253 opStructFieldStringTagString opType = 254 opStructFieldBytes opType = 255 opStructFieldOmitEmptyBytes opType = 256 opStructFieldStringTagBytes opType = 257 opStructFieldNumber opType = 258 opStructFieldOmitEmptyNumber opType = 259 opStructFieldStringTagNumber opType = 260 opStructFieldArray opType = 261 opStructFieldOmitEmptyArray opType = 262 opStructFieldStringTagArray opType = 263 opStructFieldMap opType = 264 opStructFieldOmitEmptyMap opType = 265 opStructFieldStringTagMap opType = 266 opStructFieldSlice opType = 267 opStructFieldOmitEmptySlice opType = 268 opStructFieldStringTagSlice opType = 269 opStructFieldStruct opType = 270 opStructFieldOmitEmptyStruct opType = 271 opStructFieldStringTagStruct opType = 272 opStructFieldMarshalJSON opType = 273 opStructFieldOmitEmptyMarshalJSON opType = 274 opStructFieldStringTagMarshalJSON opType = 275 opStructFieldMarshalText opType = 276 opStructFieldOmitEmptyMarshalText opType = 277 opStructFieldStringTagMarshalText opType = 278 opStructFieldRecursive opType = 279 opStructFieldOmitEmptyRecursive opType = 280 opStructFieldStringTagRecursive opType = 281 opStructFieldIntString opType = 282 opStructFieldOmitEmptyIntString opType = 283 opStructFieldStringTagIntString opType = 284 opStructFieldUintString opType = 285 opStructFieldOmitEmptyUintString opType = 286 opStructFieldStringTagUintString opType = 287 opStructFieldIntPtr opType = 288 opStructFieldOmitEmptyIntPtr opType = 289 opStructFieldStringTagIntPtr opType = 290 opStructFieldUintPtr opType = 291 opStructFieldOmitEmptyUintPtr opType = 292 opStructFieldStringTagUintPtr opType = 293 opStructFieldFloat32Ptr opType = 294 opStructFieldOmitEmptyFloat32Ptr opType = 295 opStructFieldStringTagFloat32Ptr opType = 296 opStructFieldFloat64Ptr opType = 297 opStructFieldOmitEmptyFloat64Ptr opType = 298 opStructFieldStringTagFloat64Ptr opType = 299 opStructFieldBoolPtr opType = 300 opStructFieldOmitEmptyBoolPtr opType = 301 opStructFieldStringTagBoolPtr opType = 302 opStructFieldStringPtr opType = 303 opStructFieldOmitEmptyStringPtr opType = 304 opStructFieldStringTagStringPtr opType = 305 opStructFieldBytesPtr opType = 306 opStructFieldOmitEmptyBytesPtr opType = 307 opStructFieldStringTagBytesPtr opType = 308 opStructFieldNumberPtr opType = 309 opStructFieldOmitEmptyNumberPtr opType = 310 opStructFieldStringTagNumberPtr opType = 311 opStructFieldArrayPtr opType = 312 opStructFieldOmitEmptyArrayPtr opType = 313 opStructFieldStringTagArrayPtr opType = 314 opStructFieldMapPtr opType = 315 opStructFieldOmitEmptyMapPtr opType = 316 opStructFieldStringTagMapPtr opType = 317 opStructFieldSlicePtr opType = 318 opStructFieldOmitEmptySlicePtr opType = 319 opStructFieldStringTagSlicePtr opType = 320 opStructFieldMarshalJSONPtr opType = 321 opStructFieldOmitEmptyMarshalJSONPtr opType = 322 opStructFieldStringTagMarshalJSONPtr opType = 323 opStructFieldMarshalTextPtr opType = 324 opStructFieldOmitEmptyMarshalTextPtr opType = 325 opStructFieldStringTagMarshalTextPtr opType = 326 opStructFieldInterfacePtr opType = 327 opStructFieldOmitEmptyInterfacePtr opType = 328 opStructFieldStringTagInterfacePtr opType = 329 opStructField opType = 330 opStructFieldOmitEmpty opType = 331 opStructFieldStringTag opType = 332 opStructEndInt opType = 333 opStructEndOmitEmptyInt opType = 334 opStructEndStringTagInt opType = 335 opStructEndUint opType = 336 opStructEndOmitEmptyUint opType = 337 opStructEndStringTagUint opType = 338 opStructEndFloat32 opType = 339 opStructEndOmitEmptyFloat32 opType = 340 opStructEndStringTagFloat32 opType = 341 opStructEndFloat64 opType = 342 opStructEndOmitEmptyFloat64 opType = 343 opStructEndStringTagFloat64 opType = 344 opStructEndBool opType = 345 opStructEndOmitEmptyBool opType = 346 opStructEndStringTagBool opType = 347 opStructEndString opType = 348 opStructEndOmitEmptyString opType = 349 opStructEndStringTagString opType = 350 opStructEndBytes opType = 351 opStructEndOmitEmptyBytes opType = 352 opStructEndStringTagBytes opType = 353 opStructEndNumber opType = 354 opStructEndOmitEmptyNumber opType = 355 opStructEndStringTagNumber opType = 356 opStructEndArray opType = 357 opStructEndOmitEmptyArray opType = 358 opStructEndStringTagArray opType = 359 opStructEndMap opType = 360 opStructEndOmitEmptyMap opType = 361 opStructEndStringTagMap opType = 362 opStructEndSlice opType = 363 opStructEndOmitEmptySlice opType = 364 opStructEndStringTagSlice opType = 365 opStructEndStruct opType = 366 opStructEndOmitEmptyStruct opType = 367 opStructEndStringTagStruct opType = 368 opStructEndMarshalJSON opType = 369 opStructEndOmitEmptyMarshalJSON opType = 370 opStructEndStringTagMarshalJSON opType = 371 opStructEndMarshalText opType = 372 opStructEndOmitEmptyMarshalText opType = 373 opStructEndStringTagMarshalText opType = 374 opStructEndRecursive opType = 375 opStructEndOmitEmptyRecursive opType = 376 opStructEndStringTagRecursive opType = 377 opStructEndIntString opType = 378 opStructEndOmitEmptyIntString opType = 379 opStructEndStringTagIntString opType = 380 opStructEndUintString opType = 381 opStructEndOmitEmptyUintString opType = 382 opStructEndStringTagUintString opType = 383 opStructEndIntPtr opType = 384 opStructEndOmitEmptyIntPtr opType = 385 opStructEndStringTagIntPtr opType = 386 opStructEndUintPtr opType = 387 opStructEndOmitEmptyUintPtr opType = 388 opStructEndStringTagUintPtr opType = 389 opStructEndFloat32Ptr opType = 390 opStructEndOmitEmptyFloat32Ptr opType = 391 opStructEndStringTagFloat32Ptr opType = 392 opStructEndFloat64Ptr opType = 393 opStructEndOmitEmptyFloat64Ptr opType = 394 opStructEndStringTagFloat64Ptr opType = 395 opStructEndBoolPtr opType = 396 opStructEndOmitEmptyBoolPtr opType = 397 opStructEndStringTagBoolPtr opType = 398 opStructEndStringPtr opType = 399 opStructEndOmitEmptyStringPtr opType = 400 opStructEndStringTagStringPtr opType = 401 opStructEndBytesPtr opType = 402 opStructEndOmitEmptyBytesPtr opType = 403 opStructEndStringTagBytesPtr opType = 404 opStructEndNumberPtr opType = 405 opStructEndOmitEmptyNumberPtr opType = 406 opStructEndStringTagNumberPtr opType = 407 opStructEndArrayPtr opType = 408 opStructEndOmitEmptyArrayPtr opType = 409 opStructEndStringTagArrayPtr opType = 410 opStructEndMapPtr opType = 411 opStructEndOmitEmptyMapPtr opType = 412 opStructEndStringTagMapPtr opType = 413 opStructEndSlicePtr opType = 414 opStructEndOmitEmptySlicePtr opType = 415 opStructEndStringTagSlicePtr opType = 416 opStructEndMarshalJSONPtr opType = 417 opStructEndOmitEmptyMarshalJSONPtr opType = 418 opStructEndStringTagMarshalJSONPtr opType = 419 opStructEndMarshalTextPtr opType = 420 opStructEndOmitEmptyMarshalTextPtr opType = 421 opStructEndStringTagMarshalTextPtr opType = 422 opStructEndInterfacePtr opType = 423 opStructEndOmitEmptyInterfacePtr opType = 424 opStructEndStringTagInterfacePtr opType = 425 opStructEnd opType = 426 opStructEndOmitEmpty opType = 427 opStructEndStringTag opType = 428 ) func (t opType) String() string { if int(t) >= 429 { 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 opStructFieldNumber: return opStructEndNumber case opStructFieldOmitEmptyNumber: return opStructEndOmitEmptyNumber case opStructFieldStringTagNumber: return opStructEndStringTagNumber 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 opStructFieldNumberPtr: return opStructEndNumberPtr case opStructFieldOmitEmptyNumberPtr: return opStructEndOmitEmptyNumberPtr case opStructFieldStringTagNumberPtr: return opStructEndStringTagNumberPtr case opStructFieldArrayPtr: return opStructEndArrayPtr case opStructFieldOmitEmptyArrayPtr: return opStructEndOmitEmptyArrayPtr case opStructFieldStringTagArrayPtr: return opStructEndStringTagArrayPtr case opStructFieldMapPtr: return opStructEndMapPtr case opStructFieldOmitEmptyMapPtr: return opStructEndOmitEmptyMapPtr case opStructFieldStringTagMapPtr: return opStructEndStringTagMapPtr case opStructFieldSlicePtr: return opStructEndSlicePtr case opStructFieldOmitEmptySlicePtr: return opStructEndOmitEmptySlicePtr case opStructFieldStringTagSlicePtr: return opStructEndStringTagSlicePtr 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 }