github.com/chrislusf/greenpack@v3.7.1-0.20170911073826-ad5bd10b7c47+incompatible/testdata/my_msgp_gen.go (about) 1 package testdata 2 3 // NOTE: THIS FILE WAS PRODUCED BY THE 4 // GREENPACK CODE GENERATION TOOL (github.com/glycerine/greenpack) 5 // DO NOT EDIT 6 7 import ( 8 "github.com/glycerine/greenpack/msgp" 9 ) 10 11 // MSGPfieldsNotEmpty supports omitempty tags 12 func (z *A) MSGPfieldsNotEmpty(isempty []bool) uint32 { 13 if len(isempty) == 0 { 14 return 6 15 } 16 var fieldsInUse uint32 = 6 17 isempty[0] = (len(z.Name) == 0) // string, omitempty 18 if isempty[0] { 19 fieldsInUse-- 20 } 21 isempty[1] = (z.Bday.IsZero()) // time.Time, omitempty 22 if isempty[1] { 23 fieldsInUse-- 24 } 25 isempty[2] = (len(z.Phone) == 0) // string, omitempty 26 if isempty[2] { 27 fieldsInUse-- 28 } 29 isempty[3] = (z.Sibs == 0) // number, omitempty 30 if isempty[3] { 31 fieldsInUse-- 32 } 33 isempty[4] = (z.GPA == 0) // number, omitempty 34 if isempty[4] { 35 fieldsInUse-- 36 } 37 isempty[5] = (!z.Friend) // bool, omitempty 38 if isempty[5] { 39 fieldsInUse-- 40 } 41 42 return fieldsInUse 43 } 44 45 // MSGPMarshalMsg implements msgp.Marshaler 46 func (z *A) MSGPMarshalMsg(b []byte) (o []byte, err error) { 47 if p, ok := interface{}(z).(msgp.PreSave); ok { 48 p.PreSaveHook() 49 } 50 51 o = msgp.Require(b, z.MSGPMsgsize()) 52 53 // honor the omitempty tags 54 var empty [6]bool 55 fieldsInUse := z.fieldsNotEmpty(empty[:]) 56 o = msgp.AppendMapHeader(o, fieldsInUse) 57 58 if !empty[0] { 59 // string "name_zid00_str" 60 o = append(o, 0xae, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x30, 0x5f, 0x73, 0x74, 0x72) 61 o = msgp.AppendString(o, z.Name) 62 } 63 64 if !empty[1] { 65 // string "Bday_zid01_tim" 66 o = append(o, 0xae, 0x42, 0x64, 0x61, 0x79, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x31, 0x5f, 0x74, 0x69, 0x6d) 67 o = msgp.AppendTime(o, z.Bday) 68 } 69 70 if !empty[2] { 71 // string "phone_zid02_str" 72 o = append(o, 0xaf, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x32, 0x5f, 0x73, 0x74, 0x72) 73 o = msgp.AppendString(o, z.Phone) 74 } 75 76 if !empty[3] { 77 // string "Sibs_zid03_int" 78 o = append(o, 0xae, 0x53, 0x69, 0x62, 0x73, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x33, 0x5f, 0x69, 0x6e, 0x74) 79 o = msgp.AppendInt(o, z.Sibs) 80 } 81 82 if !empty[4] { 83 // string "GPA_zid04_f64" 84 o = append(o, 0xad, 0x47, 0x50, 0x41, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x34, 0x5f, 0x66, 0x36, 0x34) 85 o = msgp.AppendFloat64(o, z.GPA) 86 } 87 88 if !empty[5] { 89 // string "Friend_zid05_boo" 90 o = append(o, 0xb0, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x35, 0x5f, 0x62, 0x6f, 0x6f) 91 o = msgp.AppendBool(o, z.Friend) 92 } 93 94 return 95 } 96 97 // MSGPUnmarshalMsg implements msgp.Unmarshaler 98 func (z *A) MSGPUnmarshalMsg(bts []byte) (o []byte, err error) { 99 return z.MSGPUnmarshalMsgWithCfg(bts, nil) 100 } 101 func (z *A) MSGPUnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) { 102 var nbs msgp.NilBitsStack 103 nbs.Init(cfg) 104 var sawTopNil bool 105 if msgp.IsNil(bts) { 106 sawTopNil = true 107 bts = nbs.PushAlwaysNil(bts[1:]) 108 } 109 110 var field []byte 111 _ = field 112 const maxFields0zgensym_58b5c2649cecee38_1 = 6 113 114 // -- templateUnmarshalMsg starts here-- 115 var totalEncodedFields0zgensym_58b5c2649cecee38_1 uint32 116 if !nbs.AlwaysNil { 117 totalEncodedFields0zgensym_58b5c2649cecee38_1, bts, err = nbs.ReadMapHeaderBytes(bts) 118 if err != nil { 119 return 120 } 121 } 122 encodedFieldsLeft0zgensym_58b5c2649cecee38_1 := totalEncodedFields0zgensym_58b5c2649cecee38_1 123 missingFieldsLeft0zgensym_58b5c2649cecee38_1 := maxFields0zgensym_58b5c2649cecee38_1 - totalEncodedFields0zgensym_58b5c2649cecee38_1 124 125 var nextMiss0zgensym_58b5c2649cecee38_1 int32 = -1 126 var found0zgensym_58b5c2649cecee38_1 [maxFields0zgensym_58b5c2649cecee38_1]bool 127 var curField0zgensym_58b5c2649cecee38_1 string 128 129 doneWithStruct0zgensym_58b5c2649cecee38_1: 130 // First fill all the encoded fields, then 131 // treat the remaining, missing fields, as Nil. 132 for encodedFieldsLeft0zgensym_58b5c2649cecee38_1 > 0 || missingFieldsLeft0zgensym_58b5c2649cecee38_1 > 0 { 133 //fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft0zgensym_58b5c2649cecee38_1, missingFieldsLeft0zgensym_58b5c2649cecee38_1, msgp.ShowFound(found0zgensym_58b5c2649cecee38_1[:]), unmarshalMsgFieldOrder0zgensym_58b5c2649cecee38_1) 134 if encodedFieldsLeft0zgensym_58b5c2649cecee38_1 > 0 { 135 encodedFieldsLeft0zgensym_58b5c2649cecee38_1-- 136 field, bts, err = nbs.ReadMapKeyZC(bts) 137 if err != nil { 138 return 139 } 140 curField0zgensym_58b5c2649cecee38_1 = msgp.UnsafeString(field) 141 } else { 142 //missing fields need handling 143 if nextMiss0zgensym_58b5c2649cecee38_1 < 0 { 144 // set bts to contain just mnil (0xc0) 145 bts = nbs.PushAlwaysNil(bts) 146 nextMiss0zgensym_58b5c2649cecee38_1 = 0 147 } 148 for nextMiss0zgensym_58b5c2649cecee38_1 < maxFields0zgensym_58b5c2649cecee38_1 && (found0zgensym_58b5c2649cecee38_1[nextMiss0zgensym_58b5c2649cecee38_1] || unmarshalMsgFieldSkip0zgensym_58b5c2649cecee38_1[nextMiss0zgensym_58b5c2649cecee38_1]) { 149 nextMiss0zgensym_58b5c2649cecee38_1++ 150 } 151 if nextMiss0zgensym_58b5c2649cecee38_1 == maxFields0zgensym_58b5c2649cecee38_1 { 152 // filled all the empty fields! 153 break doneWithStruct0zgensym_58b5c2649cecee38_1 154 } 155 missingFieldsLeft0zgensym_58b5c2649cecee38_1-- 156 curField0zgensym_58b5c2649cecee38_1 = unmarshalMsgFieldOrder0zgensym_58b5c2649cecee38_1[nextMiss0zgensym_58b5c2649cecee38_1] 157 } 158 //fmt.Printf("switching on curField: '%v'\n", curField0zgensym_58b5c2649cecee38_1) 159 switch curField0zgensym_58b5c2649cecee38_1 { 160 // -- templateUnmarshalMsg ends here -- 161 162 case "name_zid00_str": 163 found0zgensym_58b5c2649cecee38_1[0] = true 164 z.Name, bts, err = nbs.ReadStringBytes(bts) 165 166 if err != nil { 167 return 168 } 169 case "Bday_zid01_tim": 170 found0zgensym_58b5c2649cecee38_1[1] = true 171 z.Bday, bts, err = nbs.ReadTimeBytes(bts) 172 173 if err != nil { 174 return 175 } 176 case "phone_zid02_str": 177 found0zgensym_58b5c2649cecee38_1[2] = true 178 z.Phone, bts, err = nbs.ReadStringBytes(bts) 179 180 if err != nil { 181 return 182 } 183 case "Sibs_zid03_int": 184 found0zgensym_58b5c2649cecee38_1[3] = true 185 z.Sibs, bts, err = nbs.ReadIntBytes(bts) 186 187 if err != nil { 188 return 189 } 190 case "GPA_zid04_f64": 191 found0zgensym_58b5c2649cecee38_1[4] = true 192 z.GPA, bts, err = nbs.ReadFloat64Bytes(bts) 193 194 if err != nil { 195 return 196 } 197 case "Friend_zid05_boo": 198 found0zgensym_58b5c2649cecee38_1[5] = true 199 z.Friend, bts, err = nbs.ReadBoolBytes(bts) 200 201 if err != nil { 202 return 203 } 204 default: 205 bts, err = msgp.Skip(bts) 206 if err != nil { 207 return 208 } 209 } 210 } 211 if nextMiss0zgensym_58b5c2649cecee38_1 != -1 { 212 bts = nbs.PopAlwaysNil() 213 } 214 215 if sawTopNil { 216 bts = nbs.PopAlwaysNil() 217 } 218 o = bts 219 if p, ok := interface{}(z).(msgp.PostLoad); ok { 220 p.PostLoadHook() 221 } 222 223 return 224 } 225 226 // fields of A 227 var unmarshalMsgFieldOrder0zgensym_58b5c2649cecee38_1 = []string{"name_zid00_str", "Bday_zid01_tim", "phone_zid02_str", "Sibs_zid03_int", "GPA_zid04_f64", "Friend_zid05_boo"} 228 229 var unmarshalMsgFieldSkip0zgensym_58b5c2649cecee38_1 = []bool{false, false, false, false, false, false} 230 231 // MSGPMsgsize returns an upper bound estimate of the number of bytes occupied by the serialized message 232 func (z *A) MSGPMsgsize() (s int) { 233 s = 1 + 15 + msgp.StringPrefixSize + len(z.Name) + 15 + msgp.TimeSize + 16 + msgp.StringPrefixSize + len(z.Phone) + 15 + msgp.IntSize + 14 + msgp.Float64Size + 17 + msgp.BoolSize 234 return 235 } 236 237 // MSGPfieldsNotEmpty supports omitempty tags 238 func (z *Big) MSGPfieldsNotEmpty(isempty []bool) uint32 { 239 if len(isempty) == 0 { 240 return 5 241 } 242 var fieldsInUse uint32 = 5 243 isempty[0] = (len(z.Slice) == 0) // string, omitempty 244 if isempty[0] { 245 fieldsInUse-- 246 } 247 isempty[1] = (len(z.Transform) == 0) // string, omitempty 248 if isempty[1] { 249 fieldsInUse-- 250 } 251 isempty[2] = (z.Myptr == nil) // pointer, omitempty 252 if isempty[2] { 253 fieldsInUse-- 254 } 255 isempty[3] = (len(z.Myarray) == 0) // string, omitempty 256 if isempty[3] { 257 fieldsInUse-- 258 } 259 isempty[4] = (len(z.MySlice) == 0) // string, omitempty 260 if isempty[4] { 261 fieldsInUse-- 262 } 263 264 return fieldsInUse 265 } 266 267 // MSGPMarshalMsg implements msgp.Marshaler 268 func (z *Big) MSGPMarshalMsg(b []byte) (o []byte, err error) { 269 if p, ok := interface{}(z).(msgp.PreSave); ok { 270 p.PreSaveHook() 271 } 272 273 o = msgp.Require(b, z.MSGPMsgsize()) 274 275 // honor the omitempty tags 276 var empty [5]bool 277 fieldsInUse := z.fieldsNotEmpty(empty[:]) 278 o = msgp.AppendMapHeader(o, fieldsInUse) 279 280 if !empty[0] { 281 // string "Slice_zid00_slc" 282 o = append(o, 0xaf, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x30, 0x5f, 0x73, 0x6c, 0x63) 283 o = msgp.AppendArrayHeader(o, uint32(len(z.Slice))) 284 for zgensym_58b5c2649cecee38_2 := range z.Slice { 285 o, err = z.Slice[zgensym_58b5c2649cecee38_2].MSGPMarshalMsg(o) 286 if err != nil { 287 return 288 } 289 } 290 } 291 292 if !empty[1] { 293 // string "Transform_zid01_map" 294 o = append(o, 0xb3, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x31, 0x5f, 0x6d, 0x61, 0x70) 295 o = msgp.AppendMapHeader(o, uint32(len(z.Transform))) 296 for zgensym_58b5c2649cecee38_3, zgensym_58b5c2649cecee38_4 := range z.Transform { 297 o = msgp.AppendInt(o, zgensym_58b5c2649cecee38_3) 298 if zgensym_58b5c2649cecee38_4 == nil { 299 o = msgp.AppendNil(o) 300 } else { 301 o, err = zgensym_58b5c2649cecee38_4.MSGPMarshalMsg(o) 302 if err != nil { 303 return 304 } 305 } 306 } 307 } 308 309 if !empty[2] { 310 // string "Myptr_zid02_ptr" 311 o = append(o, 0xaf, 0x4d, 0x79, 0x70, 0x74, 0x72, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x32, 0x5f, 0x70, 0x74, 0x72) 312 if z.Myptr == nil { 313 o = msgp.AppendNil(o) 314 } else { 315 o, err = z.Myptr.MSGPMarshalMsg(o) 316 if err != nil { 317 return 318 } 319 } 320 } 321 322 if !empty[3] { 323 // string "Myarray_zid03_ary" 324 o = append(o, 0xb1, 0x4d, 0x79, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x33, 0x5f, 0x61, 0x72, 0x79) 325 o = msgp.AppendArrayHeader(o, 3) 326 for zgensym_58b5c2649cecee38_5 := range z.Myarray { 327 o = msgp.AppendString(o, z.Myarray[zgensym_58b5c2649cecee38_5]) 328 } 329 } 330 331 if !empty[4] { 332 // string "MySlice_zid04_slc" 333 o = append(o, 0xb1, 0x4d, 0x79, 0x53, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x34, 0x5f, 0x73, 0x6c, 0x63) 334 o = msgp.AppendArrayHeader(o, uint32(len(z.MySlice))) 335 for zgensym_58b5c2649cecee38_6 := range z.MySlice { 336 o = msgp.AppendString(o, z.MySlice[zgensym_58b5c2649cecee38_6]) 337 } 338 } 339 340 return 341 } 342 343 // MSGPUnmarshalMsg implements msgp.Unmarshaler 344 func (z *Big) MSGPUnmarshalMsg(bts []byte) (o []byte, err error) { 345 return z.MSGPUnmarshalMsgWithCfg(bts, nil) 346 } 347 func (z *Big) MSGPUnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) { 348 var nbs msgp.NilBitsStack 349 nbs.Init(cfg) 350 var sawTopNil bool 351 if msgp.IsNil(bts) { 352 sawTopNil = true 353 bts = nbs.PushAlwaysNil(bts[1:]) 354 } 355 356 var field []byte 357 _ = field 358 const maxFields7zgensym_58b5c2649cecee38_8 = 5 359 360 // -- templateUnmarshalMsg starts here-- 361 var totalEncodedFields7zgensym_58b5c2649cecee38_8 uint32 362 if !nbs.AlwaysNil { 363 totalEncodedFields7zgensym_58b5c2649cecee38_8, bts, err = nbs.ReadMapHeaderBytes(bts) 364 if err != nil { 365 return 366 } 367 } 368 encodedFieldsLeft7zgensym_58b5c2649cecee38_8 := totalEncodedFields7zgensym_58b5c2649cecee38_8 369 missingFieldsLeft7zgensym_58b5c2649cecee38_8 := maxFields7zgensym_58b5c2649cecee38_8 - totalEncodedFields7zgensym_58b5c2649cecee38_8 370 371 var nextMiss7zgensym_58b5c2649cecee38_8 int32 = -1 372 var found7zgensym_58b5c2649cecee38_8 [maxFields7zgensym_58b5c2649cecee38_8]bool 373 var curField7zgensym_58b5c2649cecee38_8 string 374 375 doneWithStruct7zgensym_58b5c2649cecee38_8: 376 // First fill all the encoded fields, then 377 // treat the remaining, missing fields, as Nil. 378 for encodedFieldsLeft7zgensym_58b5c2649cecee38_8 > 0 || missingFieldsLeft7zgensym_58b5c2649cecee38_8 > 0 { 379 //fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft7zgensym_58b5c2649cecee38_8, missingFieldsLeft7zgensym_58b5c2649cecee38_8, msgp.ShowFound(found7zgensym_58b5c2649cecee38_8[:]), unmarshalMsgFieldOrder7zgensym_58b5c2649cecee38_8) 380 if encodedFieldsLeft7zgensym_58b5c2649cecee38_8 > 0 { 381 encodedFieldsLeft7zgensym_58b5c2649cecee38_8-- 382 field, bts, err = nbs.ReadMapKeyZC(bts) 383 if err != nil { 384 return 385 } 386 curField7zgensym_58b5c2649cecee38_8 = msgp.UnsafeString(field) 387 } else { 388 //missing fields need handling 389 if nextMiss7zgensym_58b5c2649cecee38_8 < 0 { 390 // set bts to contain just mnil (0xc0) 391 bts = nbs.PushAlwaysNil(bts) 392 nextMiss7zgensym_58b5c2649cecee38_8 = 0 393 } 394 for nextMiss7zgensym_58b5c2649cecee38_8 < maxFields7zgensym_58b5c2649cecee38_8 && (found7zgensym_58b5c2649cecee38_8[nextMiss7zgensym_58b5c2649cecee38_8] || unmarshalMsgFieldSkip7zgensym_58b5c2649cecee38_8[nextMiss7zgensym_58b5c2649cecee38_8]) { 395 nextMiss7zgensym_58b5c2649cecee38_8++ 396 } 397 if nextMiss7zgensym_58b5c2649cecee38_8 == maxFields7zgensym_58b5c2649cecee38_8 { 398 // filled all the empty fields! 399 break doneWithStruct7zgensym_58b5c2649cecee38_8 400 } 401 missingFieldsLeft7zgensym_58b5c2649cecee38_8-- 402 curField7zgensym_58b5c2649cecee38_8 = unmarshalMsgFieldOrder7zgensym_58b5c2649cecee38_8[nextMiss7zgensym_58b5c2649cecee38_8] 403 } 404 //fmt.Printf("switching on curField: '%v'\n", curField7zgensym_58b5c2649cecee38_8) 405 switch curField7zgensym_58b5c2649cecee38_8 { 406 // -- templateUnmarshalMsg ends here -- 407 408 case "Slice_zid00_slc": 409 found7zgensym_58b5c2649cecee38_8[0] = true 410 if nbs.AlwaysNil { 411 (z.Slice) = (z.Slice)[:0] 412 } else { 413 414 var zgensym_58b5c2649cecee38_9 uint32 415 zgensym_58b5c2649cecee38_9, bts, err = nbs.ReadArrayHeaderBytes(bts) 416 if err != nil { 417 return 418 } 419 if cap(z.Slice) >= int(zgensym_58b5c2649cecee38_9) { 420 z.Slice = (z.Slice)[:zgensym_58b5c2649cecee38_9] 421 } else { 422 z.Slice = make([]S2, zgensym_58b5c2649cecee38_9) 423 } 424 for zgensym_58b5c2649cecee38_2 := range z.Slice { 425 bts, err = z.Slice[zgensym_58b5c2649cecee38_2].MSGPUnmarshalMsg(bts) 426 if err != nil { 427 return 428 } 429 if err != nil { 430 return 431 } 432 } 433 } 434 case "Transform_zid01_map": 435 found7zgensym_58b5c2649cecee38_8[1] = true 436 if nbs.AlwaysNil { 437 if len(z.Transform) > 0 { 438 for key, _ := range z.Transform { 439 delete(z.Transform, key) 440 } 441 } 442 443 } else { 444 445 var zgensym_58b5c2649cecee38_10 uint32 446 zgensym_58b5c2649cecee38_10, bts, err = nbs.ReadMapHeaderBytes(bts) 447 if err != nil { 448 return 449 } 450 if z.Transform == nil && zgensym_58b5c2649cecee38_10 > 0 { 451 z.Transform = make(map[int]*S2, zgensym_58b5c2649cecee38_10) 452 } else if len(z.Transform) > 0 { 453 for key, _ := range z.Transform { 454 delete(z.Transform, key) 455 } 456 } 457 for zgensym_58b5c2649cecee38_10 > 0 { 458 var zgensym_58b5c2649cecee38_3 int 459 var zgensym_58b5c2649cecee38_4 *S2 460 zgensym_58b5c2649cecee38_10-- 461 zgensym_58b5c2649cecee38_3, bts, err = nbs.ReadIntBytes(bts) 462 if err != nil { 463 return 464 } 465 if nbs.AlwaysNil { 466 if zgensym_58b5c2649cecee38_4 != nil { 467 zgensym_58b5c2649cecee38_4.MSGPUnmarshalMsg(msgp.OnlyNilSlice) 468 } 469 } else { 470 // not nbs.AlwaysNil 471 if msgp.IsNil(bts) { 472 bts = bts[1:] 473 if nil != zgensym_58b5c2649cecee38_4 { 474 zgensym_58b5c2649cecee38_4.MSGPUnmarshalMsg(msgp.OnlyNilSlice) 475 } 476 } else { 477 // not nbs.AlwaysNil and not IsNil(bts): have something to read 478 479 if zgensym_58b5c2649cecee38_4 == nil { 480 zgensym_58b5c2649cecee38_4 = new(S2) 481 } 482 bts, err = zgensym_58b5c2649cecee38_4.MSGPUnmarshalMsg(bts) 483 if err != nil { 484 return 485 } 486 if err != nil { 487 return 488 } 489 } 490 } 491 z.Transform[zgensym_58b5c2649cecee38_3] = zgensym_58b5c2649cecee38_4 492 } 493 } 494 case "Myptr_zid02_ptr": 495 found7zgensym_58b5c2649cecee38_8[2] = true 496 if nbs.AlwaysNil { 497 if z.Myptr != nil { 498 z.Myptr.MSGPUnmarshalMsg(msgp.OnlyNilSlice) 499 } 500 } else { 501 // not nbs.AlwaysNil 502 if msgp.IsNil(bts) { 503 bts = bts[1:] 504 if nil != z.Myptr { 505 z.Myptr.MSGPUnmarshalMsg(msgp.OnlyNilSlice) 506 } 507 } else { 508 // not nbs.AlwaysNil and not IsNil(bts): have something to read 509 510 if z.Myptr == nil { 511 z.Myptr = new(S2) 512 } 513 bts, err = z.Myptr.MSGPUnmarshalMsg(bts) 514 if err != nil { 515 return 516 } 517 if err != nil { 518 return 519 } 520 } 521 } 522 case "Myarray_zid03_ary": 523 found7zgensym_58b5c2649cecee38_8[3] = true 524 var zgensym_58b5c2649cecee38_11 uint32 525 zgensym_58b5c2649cecee38_11, bts, err = nbs.ReadArrayHeaderBytes(bts) 526 if err != nil { 527 return 528 } 529 if !nbs.IsNil(bts) && zgensym_58b5c2649cecee38_11 != 3 { 530 err = msgp.ArrayError{Wanted: 3, Got: zgensym_58b5c2649cecee38_11} 531 return 532 } 533 for zgensym_58b5c2649cecee38_5 := range z.Myarray { 534 z.Myarray[zgensym_58b5c2649cecee38_5], bts, err = nbs.ReadStringBytes(bts) 535 536 if err != nil { 537 return 538 } 539 } 540 case "MySlice_zid04_slc": 541 found7zgensym_58b5c2649cecee38_8[4] = true 542 if nbs.AlwaysNil { 543 (z.MySlice) = (z.MySlice)[:0] 544 } else { 545 546 var zgensym_58b5c2649cecee38_12 uint32 547 zgensym_58b5c2649cecee38_12, bts, err = nbs.ReadArrayHeaderBytes(bts) 548 if err != nil { 549 return 550 } 551 if cap(z.MySlice) >= int(zgensym_58b5c2649cecee38_12) { 552 z.MySlice = (z.MySlice)[:zgensym_58b5c2649cecee38_12] 553 } else { 554 z.MySlice = make([]string, zgensym_58b5c2649cecee38_12) 555 } 556 for zgensym_58b5c2649cecee38_6 := range z.MySlice { 557 z.MySlice[zgensym_58b5c2649cecee38_6], bts, err = nbs.ReadStringBytes(bts) 558 559 if err != nil { 560 return 561 } 562 } 563 } 564 default: 565 bts, err = msgp.Skip(bts) 566 if err != nil { 567 return 568 } 569 } 570 } 571 if nextMiss7zgensym_58b5c2649cecee38_8 != -1 { 572 bts = nbs.PopAlwaysNil() 573 } 574 575 if sawTopNil { 576 bts = nbs.PopAlwaysNil() 577 } 578 o = bts 579 if p, ok := interface{}(z).(msgp.PostLoad); ok { 580 p.PostLoadHook() 581 } 582 583 return 584 } 585 586 // fields of Big 587 var unmarshalMsgFieldOrder7zgensym_58b5c2649cecee38_8 = []string{"Slice_zid00_slc", "Transform_zid01_map", "Myptr_zid02_ptr", "Myarray_zid03_ary", "MySlice_zid04_slc"} 588 589 var unmarshalMsgFieldSkip7zgensym_58b5c2649cecee38_8 = []bool{false, false, false, false, false} 590 591 // MSGPMsgsize returns an upper bound estimate of the number of bytes occupied by the serialized message 592 func (z *Big) MSGPMsgsize() (s int) { 593 s = 1 + 16 + msgp.ArrayHeaderSize 594 for zgensym_58b5c2649cecee38_2 := range z.Slice { 595 s += z.Slice[zgensym_58b5c2649cecee38_2].MSGPMsgsize() 596 } 597 s += 20 + msgp.MapHeaderSize 598 if z.Transform != nil { 599 for zgensym_58b5c2649cecee38_3, zgensym_58b5c2649cecee38_4 := range z.Transform { 600 _ = zgensym_58b5c2649cecee38_4 601 _ = zgensym_58b5c2649cecee38_3 602 s += msgp.IntSize 603 if zgensym_58b5c2649cecee38_4 == nil { 604 s += msgp.NilSize 605 } else { 606 s += zgensym_58b5c2649cecee38_4.MSGPMsgsize() 607 } 608 } 609 } 610 s += 16 611 if z.Myptr == nil { 612 s += msgp.NilSize 613 } else { 614 s += z.Myptr.MSGPMsgsize() 615 } 616 s += 18 + msgp.ArrayHeaderSize 617 for zgensym_58b5c2649cecee38_5 := range z.Myarray { 618 s += msgp.StringPrefixSize + len(z.Myarray[zgensym_58b5c2649cecee38_5]) 619 } 620 s += 18 + msgp.ArrayHeaderSize 621 for zgensym_58b5c2649cecee38_6 := range z.MySlice { 622 s += msgp.StringPrefixSize + len(z.MySlice[zgensym_58b5c2649cecee38_6]) 623 } 624 return 625 } 626 627 // MSGPfieldsNotEmpty supports omitempty tags 628 func (z *S2) MSGPfieldsNotEmpty(isempty []bool) uint32 { 629 if len(isempty) == 0 { 630 return 7 631 } 632 var fieldsInUse uint32 = 7 633 isempty[1] = (len(z.B) == 0) // string, omitempty 634 if isempty[1] { 635 fieldsInUse-- 636 } 637 isempty[2] = (len(z.R) == 0) // string, omitempty 638 if isempty[2] { 639 fieldsInUse-- 640 } 641 isempty[3] = (z.P == 0) // number, omitempty 642 if isempty[3] { 643 fieldsInUse-- 644 } 645 isempty[4] = (z.Q == 0) // number, omitempty 646 if isempty[4] { 647 fieldsInUse-- 648 } 649 isempty[5] = (z.T == 0) // number, omitempty 650 if isempty[5] { 651 fieldsInUse-- 652 } 653 isempty[6] = (len(z.Arr) == 0) // string, omitempty 654 if isempty[6] { 655 fieldsInUse-- 656 } 657 isempty[7] = (z.MyTree == nil) // pointer, omitempty 658 if isempty[7] { 659 fieldsInUse-- 660 } 661 662 return fieldsInUse 663 } 664 665 // MSGPMarshalMsg implements msgp.Marshaler 666 func (z *S2) MSGPMarshalMsg(b []byte) (o []byte, err error) { 667 if p, ok := interface{}(z).(msgp.PreSave); ok { 668 p.PreSaveHook() 669 } 670 671 o = msgp.Require(b, z.MSGPMsgsize()) 672 673 // honor the omitempty tags 674 var empty [8]bool 675 fieldsInUse := z.fieldsNotEmpty(empty[:]) 676 o = msgp.AppendMapHeader(o, fieldsInUse) 677 678 if !empty[1] { 679 // string "beta_zid01_str" 680 o = append(o, 0xae, 0x62, 0x65, 0x74, 0x61, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x31, 0x5f, 0x73, 0x74, 0x72) 681 o = msgp.AppendString(o, z.B) 682 } 683 684 if !empty[2] { 685 // string "ralph_zid02_map" 686 o = append(o, 0xaf, 0x72, 0x61, 0x6c, 0x70, 0x68, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x32, 0x5f, 0x6d, 0x61, 0x70) 687 o = msgp.AppendMapHeader(o, uint32(len(z.R))) 688 for zgensym_58b5c2649cecee38_13, zgensym_58b5c2649cecee38_14 := range z.R { 689 o = msgp.AppendString(o, zgensym_58b5c2649cecee38_13) 690 o = msgp.AppendUint8(o, zgensym_58b5c2649cecee38_14) 691 } 692 } 693 694 if !empty[3] { 695 // string "P_zid03_u16" 696 o = append(o, 0xab, 0x50, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x33, 0x5f, 0x75, 0x31, 0x36) 697 o = msgp.AppendUint16(o, z.P) 698 } 699 700 if !empty[4] { 701 // string "Q_zid04_u32" 702 o = append(o, 0xab, 0x51, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x34, 0x5f, 0x75, 0x33, 0x32) 703 o = msgp.AppendUint32(o, z.Q) 704 } 705 706 if !empty[5] { 707 // string "T_zid05_i64" 708 o = append(o, 0xab, 0x54, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x35, 0x5f, 0x69, 0x36, 0x34) 709 o = msgp.AppendInt64(o, z.T) 710 } 711 712 if !empty[6] { 713 // string "arr_zid06_ary" 714 o = append(o, 0xad, 0x61, 0x72, 0x72, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x36, 0x5f, 0x61, 0x72, 0x79) 715 o = msgp.AppendArrayHeader(o, 6) 716 for zgensym_58b5c2649cecee38_15 := range z.Arr { 717 o = msgp.AppendFloat64(o, z.Arr[zgensym_58b5c2649cecee38_15]) 718 } 719 } 720 721 if !empty[7] { 722 // string "MyTree_zid07_ptr" 723 o = append(o, 0xb0, 0x4d, 0x79, 0x54, 0x72, 0x65, 0x65, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x37, 0x5f, 0x70, 0x74, 0x72) 724 if z.MyTree == nil { 725 o = msgp.AppendNil(o) 726 } else { 727 o, err = z.MyTree.MSGPMarshalMsg(o) 728 if err != nil { 729 return 730 } 731 } 732 } 733 734 return 735 } 736 737 // MSGPUnmarshalMsg implements msgp.Unmarshaler 738 func (z *S2) MSGPUnmarshalMsg(bts []byte) (o []byte, err error) { 739 return z.MSGPUnmarshalMsgWithCfg(bts, nil) 740 } 741 func (z *S2) MSGPUnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) { 742 var nbs msgp.NilBitsStack 743 nbs.Init(cfg) 744 var sawTopNil bool 745 if msgp.IsNil(bts) { 746 sawTopNil = true 747 bts = nbs.PushAlwaysNil(bts[1:]) 748 } 749 750 var field []byte 751 _ = field 752 const maxFields16zgensym_58b5c2649cecee38_17 = 8 753 754 // -- templateUnmarshalMsg starts here-- 755 var totalEncodedFields16zgensym_58b5c2649cecee38_17 uint32 756 if !nbs.AlwaysNil { 757 totalEncodedFields16zgensym_58b5c2649cecee38_17, bts, err = nbs.ReadMapHeaderBytes(bts) 758 if err != nil { 759 return 760 } 761 } 762 encodedFieldsLeft16zgensym_58b5c2649cecee38_17 := totalEncodedFields16zgensym_58b5c2649cecee38_17 763 missingFieldsLeft16zgensym_58b5c2649cecee38_17 := maxFields16zgensym_58b5c2649cecee38_17 - totalEncodedFields16zgensym_58b5c2649cecee38_17 764 765 var nextMiss16zgensym_58b5c2649cecee38_17 int32 = -1 766 var found16zgensym_58b5c2649cecee38_17 [maxFields16zgensym_58b5c2649cecee38_17]bool 767 var curField16zgensym_58b5c2649cecee38_17 string 768 769 doneWithStruct16zgensym_58b5c2649cecee38_17: 770 // First fill all the encoded fields, then 771 // treat the remaining, missing fields, as Nil. 772 for encodedFieldsLeft16zgensym_58b5c2649cecee38_17 > 0 || missingFieldsLeft16zgensym_58b5c2649cecee38_17 > 0 { 773 //fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft16zgensym_58b5c2649cecee38_17, missingFieldsLeft16zgensym_58b5c2649cecee38_17, msgp.ShowFound(found16zgensym_58b5c2649cecee38_17[:]), unmarshalMsgFieldOrder16zgensym_58b5c2649cecee38_17) 774 if encodedFieldsLeft16zgensym_58b5c2649cecee38_17 > 0 { 775 encodedFieldsLeft16zgensym_58b5c2649cecee38_17-- 776 field, bts, err = nbs.ReadMapKeyZC(bts) 777 if err != nil { 778 return 779 } 780 curField16zgensym_58b5c2649cecee38_17 = msgp.UnsafeString(field) 781 } else { 782 //missing fields need handling 783 if nextMiss16zgensym_58b5c2649cecee38_17 < 0 { 784 // set bts to contain just mnil (0xc0) 785 bts = nbs.PushAlwaysNil(bts) 786 nextMiss16zgensym_58b5c2649cecee38_17 = 0 787 } 788 for nextMiss16zgensym_58b5c2649cecee38_17 < maxFields16zgensym_58b5c2649cecee38_17 && (found16zgensym_58b5c2649cecee38_17[nextMiss16zgensym_58b5c2649cecee38_17] || unmarshalMsgFieldSkip16zgensym_58b5c2649cecee38_17[nextMiss16zgensym_58b5c2649cecee38_17]) { 789 nextMiss16zgensym_58b5c2649cecee38_17++ 790 } 791 if nextMiss16zgensym_58b5c2649cecee38_17 == maxFields16zgensym_58b5c2649cecee38_17 { 792 // filled all the empty fields! 793 break doneWithStruct16zgensym_58b5c2649cecee38_17 794 } 795 missingFieldsLeft16zgensym_58b5c2649cecee38_17-- 796 curField16zgensym_58b5c2649cecee38_17 = unmarshalMsgFieldOrder16zgensym_58b5c2649cecee38_17[nextMiss16zgensym_58b5c2649cecee38_17] 797 } 798 //fmt.Printf("switching on curField: '%v'\n", curField16zgensym_58b5c2649cecee38_17) 799 switch curField16zgensym_58b5c2649cecee38_17 { 800 // -- templateUnmarshalMsg ends here -- 801 802 case "beta_zid01_str": 803 found16zgensym_58b5c2649cecee38_17[1] = true 804 z.B, bts, err = nbs.ReadStringBytes(bts) 805 806 if err != nil { 807 return 808 } 809 case "ralph_zid02_map": 810 found16zgensym_58b5c2649cecee38_17[2] = true 811 if nbs.AlwaysNil { 812 if len(z.R) > 0 { 813 for key, _ := range z.R { 814 delete(z.R, key) 815 } 816 } 817 818 } else { 819 820 var zgensym_58b5c2649cecee38_18 uint32 821 zgensym_58b5c2649cecee38_18, bts, err = nbs.ReadMapHeaderBytes(bts) 822 if err != nil { 823 return 824 } 825 if z.R == nil && zgensym_58b5c2649cecee38_18 > 0 { 826 z.R = make(map[string]uint8, zgensym_58b5c2649cecee38_18) 827 } else if len(z.R) > 0 { 828 for key, _ := range z.R { 829 delete(z.R, key) 830 } 831 } 832 for zgensym_58b5c2649cecee38_18 > 0 { 833 var zgensym_58b5c2649cecee38_13 string 834 var zgensym_58b5c2649cecee38_14 uint8 835 zgensym_58b5c2649cecee38_18-- 836 zgensym_58b5c2649cecee38_13, bts, err = nbs.ReadStringBytes(bts) 837 if err != nil { 838 return 839 } 840 zgensym_58b5c2649cecee38_14, bts, err = nbs.ReadUint8Bytes(bts) 841 842 if err != nil { 843 return 844 } 845 z.R[zgensym_58b5c2649cecee38_13] = zgensym_58b5c2649cecee38_14 846 } 847 } 848 case "P_zid03_u16": 849 found16zgensym_58b5c2649cecee38_17[3] = true 850 z.P, bts, err = nbs.ReadUint16Bytes(bts) 851 852 if err != nil { 853 return 854 } 855 case "Q_zid04_u32": 856 found16zgensym_58b5c2649cecee38_17[4] = true 857 z.Q, bts, err = nbs.ReadUint32Bytes(bts) 858 859 if err != nil { 860 return 861 } 862 case "T_zid05_i64": 863 found16zgensym_58b5c2649cecee38_17[5] = true 864 z.T, bts, err = nbs.ReadInt64Bytes(bts) 865 866 if err != nil { 867 return 868 } 869 case "arr_zid06_ary": 870 found16zgensym_58b5c2649cecee38_17[6] = true 871 var zgensym_58b5c2649cecee38_19 uint32 872 zgensym_58b5c2649cecee38_19, bts, err = nbs.ReadArrayHeaderBytes(bts) 873 if err != nil { 874 return 875 } 876 if !nbs.IsNil(bts) && zgensym_58b5c2649cecee38_19 != 6 { 877 err = msgp.ArrayError{Wanted: 6, Got: zgensym_58b5c2649cecee38_19} 878 return 879 } 880 for zgensym_58b5c2649cecee38_15 := range z.Arr { 881 z.Arr[zgensym_58b5c2649cecee38_15], bts, err = nbs.ReadFloat64Bytes(bts) 882 883 if err != nil { 884 return 885 } 886 } 887 case "MyTree_zid07_ptr": 888 found16zgensym_58b5c2649cecee38_17[7] = true 889 if nbs.AlwaysNil { 890 if z.MyTree != nil { 891 z.MyTree.MSGPUnmarshalMsg(msgp.OnlyNilSlice) 892 } 893 } else { 894 // not nbs.AlwaysNil 895 if msgp.IsNil(bts) { 896 bts = bts[1:] 897 if nil != z.MyTree { 898 z.MyTree.MSGPUnmarshalMsg(msgp.OnlyNilSlice) 899 } 900 } else { 901 // not nbs.AlwaysNil and not IsNil(bts): have something to read 902 903 if z.MyTree == nil { 904 z.MyTree = new(Tree) 905 } 906 bts, err = z.MyTree.MSGPUnmarshalMsg(bts) 907 if err != nil { 908 return 909 } 910 if err != nil { 911 return 912 } 913 } 914 } 915 default: 916 bts, err = msgp.Skip(bts) 917 if err != nil { 918 return 919 } 920 } 921 } 922 if nextMiss16zgensym_58b5c2649cecee38_17 != -1 { 923 bts = nbs.PopAlwaysNil() 924 } 925 926 if sawTopNil { 927 bts = nbs.PopAlwaysNil() 928 } 929 o = bts 930 if p, ok := interface{}(z).(msgp.PostLoad); ok { 931 p.PostLoadHook() 932 } 933 934 return 935 } 936 937 // fields of S2 938 var unmarshalMsgFieldOrder16zgensym_58b5c2649cecee38_17 = []string{"", "beta_zid01_str", "ralph_zid02_map", "P_zid03_u16", "Q_zid04_u32", "T_zid05_i64", "arr_zid06_ary", "MyTree_zid07_ptr"} 939 940 var unmarshalMsgFieldSkip16zgensym_58b5c2649cecee38_17 = []bool{true, false, false, false, false, false, false, false} 941 942 // MSGPMsgsize returns an upper bound estimate of the number of bytes occupied by the serialized message 943 func (z *S2) MSGPMsgsize() (s int) { 944 s = 1 + 15 + msgp.StringPrefixSize + len(z.B) + 16 + msgp.MapHeaderSize 945 if z.R != nil { 946 for zgensym_58b5c2649cecee38_13, zgensym_58b5c2649cecee38_14 := range z.R { 947 _ = zgensym_58b5c2649cecee38_14 948 _ = zgensym_58b5c2649cecee38_13 949 s += msgp.StringPrefixSize + len(zgensym_58b5c2649cecee38_13) + msgp.Uint8Size 950 } 951 } 952 s += 12 + msgp.Uint16Size + 12 + msgp.Uint32Size + 12 + msgp.Int64Size + 14 + msgp.ArrayHeaderSize + (6 * (msgp.Float64Size)) + 17 953 if z.MyTree == nil { 954 s += msgp.NilSize 955 } else { 956 s += z.MyTree.MSGPMsgsize() 957 } 958 return 959 } 960 961 // MSGPfieldsNotEmpty supports omitempty tags 962 func (z Sys) MSGPfieldsNotEmpty(isempty []bool) uint32 { 963 if len(isempty) == 0 { 964 return 1 965 } 966 var fieldsInUse uint32 = 1 967 isempty[0] = false 968 if isempty[0] { 969 fieldsInUse-- 970 } 971 972 return fieldsInUse 973 } 974 975 // MSGPMarshalMsg implements msgp.Marshaler 976 func (z Sys) MSGPMarshalMsg(b []byte) (o []byte, err error) { 977 if p, ok := interface{}(z).(msgp.PreSave); ok { 978 p.PreSaveHook() 979 } 980 981 o = msgp.Require(b, z.MSGPMsgsize()) 982 983 // honor the omitempty tags 984 var empty [1]bool 985 fieldsInUse := z.fieldsNotEmpty(empty[:]) 986 o = msgp.AppendMapHeader(o, fieldsInUse) 987 988 if !empty[0] { 989 // string "F_zid00_ifc" 990 o = append(o, 0xab, 0x46, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x30, 0x5f, 0x69, 0x66, 0x63) 991 o, err = msgp.AppendIntf(o, z.F) 992 if err != nil { 993 return 994 } 995 } 996 997 return 998 } 999 1000 // MSGPUnmarshalMsg implements msgp.Unmarshaler 1001 func (z *Sys) MSGPUnmarshalMsg(bts []byte) (o []byte, err error) { 1002 return z.MSGPUnmarshalMsgWithCfg(bts, nil) 1003 } 1004 func (z *Sys) MSGPUnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) { 1005 var nbs msgp.NilBitsStack 1006 nbs.Init(cfg) 1007 var sawTopNil bool 1008 if msgp.IsNil(bts) { 1009 sawTopNil = true 1010 bts = nbs.PushAlwaysNil(bts[1:]) 1011 } 1012 1013 var field []byte 1014 _ = field 1015 const maxFields20zgensym_58b5c2649cecee38_21 = 1 1016 1017 // -- templateUnmarshalMsg starts here-- 1018 var totalEncodedFields20zgensym_58b5c2649cecee38_21 uint32 1019 if !nbs.AlwaysNil { 1020 totalEncodedFields20zgensym_58b5c2649cecee38_21, bts, err = nbs.ReadMapHeaderBytes(bts) 1021 if err != nil { 1022 return 1023 } 1024 } 1025 encodedFieldsLeft20zgensym_58b5c2649cecee38_21 := totalEncodedFields20zgensym_58b5c2649cecee38_21 1026 missingFieldsLeft20zgensym_58b5c2649cecee38_21 := maxFields20zgensym_58b5c2649cecee38_21 - totalEncodedFields20zgensym_58b5c2649cecee38_21 1027 1028 var nextMiss20zgensym_58b5c2649cecee38_21 int32 = -1 1029 var found20zgensym_58b5c2649cecee38_21 [maxFields20zgensym_58b5c2649cecee38_21]bool 1030 var curField20zgensym_58b5c2649cecee38_21 string 1031 1032 doneWithStruct20zgensym_58b5c2649cecee38_21: 1033 // First fill all the encoded fields, then 1034 // treat the remaining, missing fields, as Nil. 1035 for encodedFieldsLeft20zgensym_58b5c2649cecee38_21 > 0 || missingFieldsLeft20zgensym_58b5c2649cecee38_21 > 0 { 1036 //fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft20zgensym_58b5c2649cecee38_21, missingFieldsLeft20zgensym_58b5c2649cecee38_21, msgp.ShowFound(found20zgensym_58b5c2649cecee38_21[:]), unmarshalMsgFieldOrder20zgensym_58b5c2649cecee38_21) 1037 if encodedFieldsLeft20zgensym_58b5c2649cecee38_21 > 0 { 1038 encodedFieldsLeft20zgensym_58b5c2649cecee38_21-- 1039 field, bts, err = nbs.ReadMapKeyZC(bts) 1040 if err != nil { 1041 return 1042 } 1043 curField20zgensym_58b5c2649cecee38_21 = msgp.UnsafeString(field) 1044 } else { 1045 //missing fields need handling 1046 if nextMiss20zgensym_58b5c2649cecee38_21 < 0 { 1047 // set bts to contain just mnil (0xc0) 1048 bts = nbs.PushAlwaysNil(bts) 1049 nextMiss20zgensym_58b5c2649cecee38_21 = 0 1050 } 1051 for nextMiss20zgensym_58b5c2649cecee38_21 < maxFields20zgensym_58b5c2649cecee38_21 && (found20zgensym_58b5c2649cecee38_21[nextMiss20zgensym_58b5c2649cecee38_21] || unmarshalMsgFieldSkip20zgensym_58b5c2649cecee38_21[nextMiss20zgensym_58b5c2649cecee38_21]) { 1052 nextMiss20zgensym_58b5c2649cecee38_21++ 1053 } 1054 if nextMiss20zgensym_58b5c2649cecee38_21 == maxFields20zgensym_58b5c2649cecee38_21 { 1055 // filled all the empty fields! 1056 break doneWithStruct20zgensym_58b5c2649cecee38_21 1057 } 1058 missingFieldsLeft20zgensym_58b5c2649cecee38_21-- 1059 curField20zgensym_58b5c2649cecee38_21 = unmarshalMsgFieldOrder20zgensym_58b5c2649cecee38_21[nextMiss20zgensym_58b5c2649cecee38_21] 1060 } 1061 //fmt.Printf("switching on curField: '%v'\n", curField20zgensym_58b5c2649cecee38_21) 1062 switch curField20zgensym_58b5c2649cecee38_21 { 1063 // -- templateUnmarshalMsg ends here -- 1064 1065 case "F_zid00_ifc": 1066 found20zgensym_58b5c2649cecee38_21[0] = true 1067 z.F, bts, err = nbs.ReadIntfBytes(bts) 1068 1069 if err != nil { 1070 return 1071 } 1072 default: 1073 bts, err = msgp.Skip(bts) 1074 if err != nil { 1075 return 1076 } 1077 } 1078 } 1079 if nextMiss20zgensym_58b5c2649cecee38_21 != -1 { 1080 bts = nbs.PopAlwaysNil() 1081 } 1082 1083 if sawTopNil { 1084 bts = nbs.PopAlwaysNil() 1085 } 1086 o = bts 1087 if p, ok := interface{}(z).(msgp.PostLoad); ok { 1088 p.PostLoadHook() 1089 } 1090 1091 return 1092 } 1093 1094 // fields of Sys 1095 var unmarshalMsgFieldOrder20zgensym_58b5c2649cecee38_21 = []string{"F_zid00_ifc"} 1096 1097 var unmarshalMsgFieldSkip20zgensym_58b5c2649cecee38_21 = []bool{false} 1098 1099 // MSGPMsgsize returns an upper bound estimate of the number of bytes occupied by the serialized message 1100 func (z Sys) MSGPMsgsize() (s int) { 1101 s = 1 + 12 + msgp.GuessSize(z.F) 1102 return 1103 } 1104 1105 // MSGPfieldsNotEmpty supports omitempty tags 1106 func (z *Tree) MSGPfieldsNotEmpty(isempty []bool) uint32 { 1107 if len(isempty) == 0 { 1108 return 3 1109 } 1110 var fieldsInUse uint32 = 3 1111 isempty[0] = (len(z.Chld) == 0) // string, omitempty 1112 if isempty[0] { 1113 fieldsInUse-- 1114 } 1115 isempty[1] = (len(z.Str) == 0) // string, omitempty 1116 if isempty[1] { 1117 fieldsInUse-- 1118 } 1119 isempty[2] = (z.Par == nil) // pointer, omitempty 1120 if isempty[2] { 1121 fieldsInUse-- 1122 } 1123 1124 return fieldsInUse 1125 } 1126 1127 // MSGPMarshalMsg implements msgp.Marshaler 1128 func (z *Tree) MSGPMarshalMsg(b []byte) (o []byte, err error) { 1129 if p, ok := interface{}(z).(msgp.PreSave); ok { 1130 p.PreSaveHook() 1131 } 1132 1133 o = msgp.Require(b, z.MSGPMsgsize()) 1134 1135 // honor the omitempty tags 1136 var empty [3]bool 1137 fieldsInUse := z.fieldsNotEmpty(empty[:]) 1138 o = msgp.AppendMapHeader(o, fieldsInUse) 1139 1140 if !empty[0] { 1141 // string "Chld_zid00_slc" 1142 o = append(o, 0xae, 0x43, 0x68, 0x6c, 0x64, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x30, 0x5f, 0x73, 0x6c, 0x63) 1143 o = msgp.AppendArrayHeader(o, uint32(len(z.Chld))) 1144 for zgensym_58b5c2649cecee38_22 := range z.Chld { 1145 o, err = z.Chld[zgensym_58b5c2649cecee38_22].MSGPMarshalMsg(o) 1146 if err != nil { 1147 return 1148 } 1149 } 1150 } 1151 1152 if !empty[1] { 1153 // string "Str_zid01_str" 1154 o = append(o, 0xad, 0x53, 0x74, 0x72, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x31, 0x5f, 0x73, 0x74, 0x72) 1155 o = msgp.AppendString(o, z.Str) 1156 } 1157 1158 if !empty[2] { 1159 // string "Par_zid02_ptr" 1160 o = append(o, 0xad, 0x50, 0x61, 0x72, 0x5f, 0x7a, 0x69, 0x64, 0x30, 0x32, 0x5f, 0x70, 0x74, 0x72) 1161 if z.Par == nil { 1162 o = msgp.AppendNil(o) 1163 } else { 1164 o, err = z.Par.MSGPMarshalMsg(o) 1165 if err != nil { 1166 return 1167 } 1168 } 1169 } 1170 1171 return 1172 } 1173 1174 // MSGPUnmarshalMsg implements msgp.Unmarshaler 1175 func (z *Tree) MSGPUnmarshalMsg(bts []byte) (o []byte, err error) { 1176 return z.MSGPUnmarshalMsgWithCfg(bts, nil) 1177 } 1178 func (z *Tree) MSGPUnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) { 1179 var nbs msgp.NilBitsStack 1180 nbs.Init(cfg) 1181 var sawTopNil bool 1182 if msgp.IsNil(bts) { 1183 sawTopNil = true 1184 bts = nbs.PushAlwaysNil(bts[1:]) 1185 } 1186 1187 var field []byte 1188 _ = field 1189 const maxFields23zgensym_58b5c2649cecee38_24 = 3 1190 1191 // -- templateUnmarshalMsg starts here-- 1192 var totalEncodedFields23zgensym_58b5c2649cecee38_24 uint32 1193 if !nbs.AlwaysNil { 1194 totalEncodedFields23zgensym_58b5c2649cecee38_24, bts, err = nbs.ReadMapHeaderBytes(bts) 1195 if err != nil { 1196 return 1197 } 1198 } 1199 encodedFieldsLeft23zgensym_58b5c2649cecee38_24 := totalEncodedFields23zgensym_58b5c2649cecee38_24 1200 missingFieldsLeft23zgensym_58b5c2649cecee38_24 := maxFields23zgensym_58b5c2649cecee38_24 - totalEncodedFields23zgensym_58b5c2649cecee38_24 1201 1202 var nextMiss23zgensym_58b5c2649cecee38_24 int32 = -1 1203 var found23zgensym_58b5c2649cecee38_24 [maxFields23zgensym_58b5c2649cecee38_24]bool 1204 var curField23zgensym_58b5c2649cecee38_24 string 1205 1206 doneWithStruct23zgensym_58b5c2649cecee38_24: 1207 // First fill all the encoded fields, then 1208 // treat the remaining, missing fields, as Nil. 1209 for encodedFieldsLeft23zgensym_58b5c2649cecee38_24 > 0 || missingFieldsLeft23zgensym_58b5c2649cecee38_24 > 0 { 1210 //fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft23zgensym_58b5c2649cecee38_24, missingFieldsLeft23zgensym_58b5c2649cecee38_24, msgp.ShowFound(found23zgensym_58b5c2649cecee38_24[:]), unmarshalMsgFieldOrder23zgensym_58b5c2649cecee38_24) 1211 if encodedFieldsLeft23zgensym_58b5c2649cecee38_24 > 0 { 1212 encodedFieldsLeft23zgensym_58b5c2649cecee38_24-- 1213 field, bts, err = nbs.ReadMapKeyZC(bts) 1214 if err != nil { 1215 return 1216 } 1217 curField23zgensym_58b5c2649cecee38_24 = msgp.UnsafeString(field) 1218 } else { 1219 //missing fields need handling 1220 if nextMiss23zgensym_58b5c2649cecee38_24 < 0 { 1221 // set bts to contain just mnil (0xc0) 1222 bts = nbs.PushAlwaysNil(bts) 1223 nextMiss23zgensym_58b5c2649cecee38_24 = 0 1224 } 1225 for nextMiss23zgensym_58b5c2649cecee38_24 < maxFields23zgensym_58b5c2649cecee38_24 && (found23zgensym_58b5c2649cecee38_24[nextMiss23zgensym_58b5c2649cecee38_24] || unmarshalMsgFieldSkip23zgensym_58b5c2649cecee38_24[nextMiss23zgensym_58b5c2649cecee38_24]) { 1226 nextMiss23zgensym_58b5c2649cecee38_24++ 1227 } 1228 if nextMiss23zgensym_58b5c2649cecee38_24 == maxFields23zgensym_58b5c2649cecee38_24 { 1229 // filled all the empty fields! 1230 break doneWithStruct23zgensym_58b5c2649cecee38_24 1231 } 1232 missingFieldsLeft23zgensym_58b5c2649cecee38_24-- 1233 curField23zgensym_58b5c2649cecee38_24 = unmarshalMsgFieldOrder23zgensym_58b5c2649cecee38_24[nextMiss23zgensym_58b5c2649cecee38_24] 1234 } 1235 //fmt.Printf("switching on curField: '%v'\n", curField23zgensym_58b5c2649cecee38_24) 1236 switch curField23zgensym_58b5c2649cecee38_24 { 1237 // -- templateUnmarshalMsg ends here -- 1238 1239 case "Chld_zid00_slc": 1240 found23zgensym_58b5c2649cecee38_24[0] = true 1241 if nbs.AlwaysNil { 1242 (z.Chld) = (z.Chld)[:0] 1243 } else { 1244 1245 var zgensym_58b5c2649cecee38_25 uint32 1246 zgensym_58b5c2649cecee38_25, bts, err = nbs.ReadArrayHeaderBytes(bts) 1247 if err != nil { 1248 return 1249 } 1250 if cap(z.Chld) >= int(zgensym_58b5c2649cecee38_25) { 1251 z.Chld = (z.Chld)[:zgensym_58b5c2649cecee38_25] 1252 } else { 1253 z.Chld = make([]Tree, zgensym_58b5c2649cecee38_25) 1254 } 1255 for zgensym_58b5c2649cecee38_22 := range z.Chld { 1256 bts, err = z.Chld[zgensym_58b5c2649cecee38_22].MSGPUnmarshalMsg(bts) 1257 if err != nil { 1258 return 1259 } 1260 if err != nil { 1261 return 1262 } 1263 } 1264 } 1265 case "Str_zid01_str": 1266 found23zgensym_58b5c2649cecee38_24[1] = true 1267 z.Str, bts, err = nbs.ReadStringBytes(bts) 1268 1269 if err != nil { 1270 return 1271 } 1272 case "Par_zid02_ptr": 1273 found23zgensym_58b5c2649cecee38_24[2] = true 1274 if nbs.AlwaysNil { 1275 if z.Par != nil { 1276 z.Par.MSGPUnmarshalMsg(msgp.OnlyNilSlice) 1277 } 1278 } else { 1279 // not nbs.AlwaysNil 1280 if msgp.IsNil(bts) { 1281 bts = bts[1:] 1282 if nil != z.Par { 1283 z.Par.MSGPUnmarshalMsg(msgp.OnlyNilSlice) 1284 } 1285 } else { 1286 // not nbs.AlwaysNil and not IsNil(bts): have something to read 1287 1288 if z.Par == nil { 1289 z.Par = new(S2) 1290 } 1291 bts, err = z.Par.MSGPUnmarshalMsg(bts) 1292 if err != nil { 1293 return 1294 } 1295 if err != nil { 1296 return 1297 } 1298 } 1299 } 1300 default: 1301 bts, err = msgp.Skip(bts) 1302 if err != nil { 1303 return 1304 } 1305 } 1306 } 1307 if nextMiss23zgensym_58b5c2649cecee38_24 != -1 { 1308 bts = nbs.PopAlwaysNil() 1309 } 1310 1311 if sawTopNil { 1312 bts = nbs.PopAlwaysNil() 1313 } 1314 o = bts 1315 if p, ok := interface{}(z).(msgp.PostLoad); ok { 1316 p.PostLoadHook() 1317 } 1318 1319 return 1320 } 1321 1322 // fields of Tree 1323 var unmarshalMsgFieldOrder23zgensym_58b5c2649cecee38_24 = []string{"Chld_zid00_slc", "Str_zid01_str", "Par_zid02_ptr"} 1324 1325 var unmarshalMsgFieldSkip23zgensym_58b5c2649cecee38_24 = []bool{false, false, false} 1326 1327 // MSGPMsgsize returns an upper bound estimate of the number of bytes occupied by the serialized message 1328 func (z *Tree) MSGPMsgsize() (s int) { 1329 s = 1 + 15 + msgp.ArrayHeaderSize 1330 for zgensym_58b5c2649cecee38_22 := range z.Chld { 1331 s += z.Chld[zgensym_58b5c2649cecee38_22].MSGPMsgsize() 1332 } 1333 s += 14 + msgp.StringPrefixSize + len(z.Str) + 14 1334 if z.Par == nil { 1335 s += msgp.NilSize 1336 } else { 1337 s += z.Par.MSGPMsgsize() 1338 } 1339 return 1340 }