github.com/devops-filetransfer/sshego@v7.0.4+incompatible/amap_gen.go (about) 1 package sshego 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 // DecodeMsg implements msgp.Decodable 12 // We treat empty fields as if we read a Nil from the wire. 13 func (z *AtomicUserMap) DecodeMsg(dc *msgp.Reader) (err error) { 14 var sawTopNil bool 15 if dc.IsNil() { 16 sawTopNil = true 17 err = dc.ReadNil() 18 if err != nil { 19 return 20 } 21 dc.PushAlwaysNil() 22 } 23 24 var field []byte 25 _ = field 26 const maxFields2zgensym_3cf2ad9d56d74f32_3 = 1 27 28 // -- templateDecodeMsg starts here-- 29 var totalEncodedFields2zgensym_3cf2ad9d56d74f32_3 uint32 30 totalEncodedFields2zgensym_3cf2ad9d56d74f32_3, err = dc.ReadMapHeader() 31 if err != nil { 32 return 33 } 34 encodedFieldsLeft2zgensym_3cf2ad9d56d74f32_3 := totalEncodedFields2zgensym_3cf2ad9d56d74f32_3 35 missingFieldsLeft2zgensym_3cf2ad9d56d74f32_3 := maxFields2zgensym_3cf2ad9d56d74f32_3 - totalEncodedFields2zgensym_3cf2ad9d56d74f32_3 36 37 var nextMiss2zgensym_3cf2ad9d56d74f32_3 int32 = -1 38 var found2zgensym_3cf2ad9d56d74f32_3 [maxFields2zgensym_3cf2ad9d56d74f32_3]bool 39 var curField2zgensym_3cf2ad9d56d74f32_3 string 40 41 doneWithStruct2zgensym_3cf2ad9d56d74f32_3: 42 // First fill all the encoded fields, then 43 // treat the remaining, missing fields, as Nil. 44 for encodedFieldsLeft2zgensym_3cf2ad9d56d74f32_3 > 0 || missingFieldsLeft2zgensym_3cf2ad9d56d74f32_3 > 0 { 45 //fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft2zgensym_3cf2ad9d56d74f32_3, missingFieldsLeft2zgensym_3cf2ad9d56d74f32_3, msgp.ShowFound(found2zgensym_3cf2ad9d56d74f32_3[:]), decodeMsgFieldOrder2zgensym_3cf2ad9d56d74f32_3) 46 if encodedFieldsLeft2zgensym_3cf2ad9d56d74f32_3 > 0 { 47 encodedFieldsLeft2zgensym_3cf2ad9d56d74f32_3-- 48 field, err = dc.ReadMapKeyPtr() 49 if err != nil { 50 return 51 } 52 curField2zgensym_3cf2ad9d56d74f32_3 = msgp.UnsafeString(field) 53 } else { 54 //missing fields need handling 55 if nextMiss2zgensym_3cf2ad9d56d74f32_3 < 0 { 56 // tell the reader to only give us Nils 57 // until further notice. 58 dc.PushAlwaysNil() 59 nextMiss2zgensym_3cf2ad9d56d74f32_3 = 0 60 } 61 for nextMiss2zgensym_3cf2ad9d56d74f32_3 < maxFields2zgensym_3cf2ad9d56d74f32_3 && (found2zgensym_3cf2ad9d56d74f32_3[nextMiss2zgensym_3cf2ad9d56d74f32_3] || decodeMsgFieldSkip2zgensym_3cf2ad9d56d74f32_3[nextMiss2zgensym_3cf2ad9d56d74f32_3]) { 62 nextMiss2zgensym_3cf2ad9d56d74f32_3++ 63 } 64 if nextMiss2zgensym_3cf2ad9d56d74f32_3 == maxFields2zgensym_3cf2ad9d56d74f32_3 { 65 // filled all the empty fields! 66 break doneWithStruct2zgensym_3cf2ad9d56d74f32_3 67 } 68 missingFieldsLeft2zgensym_3cf2ad9d56d74f32_3-- 69 curField2zgensym_3cf2ad9d56d74f32_3 = decodeMsgFieldOrder2zgensym_3cf2ad9d56d74f32_3[nextMiss2zgensym_3cf2ad9d56d74f32_3] 70 } 71 //fmt.Printf("switching on curField: '%v'\n", curField2zgensym_3cf2ad9d56d74f32_3) 72 switch curField2zgensym_3cf2ad9d56d74f32_3 { 73 // -- templateDecodeMsg ends here -- 74 75 case "U__map": 76 found2zgensym_3cf2ad9d56d74f32_3[0] = true 77 var zgensym_3cf2ad9d56d74f32_4 uint32 78 zgensym_3cf2ad9d56d74f32_4, err = dc.ReadMapHeader() 79 if err != nil { 80 return 81 } 82 if z.U == nil && zgensym_3cf2ad9d56d74f32_4 > 0 { 83 z.U = make(map[string]*User, zgensym_3cf2ad9d56d74f32_4) 84 } else if len(z.U) > 0 { 85 for key, _ := range z.U { 86 delete(z.U, key) 87 } 88 } 89 for zgensym_3cf2ad9d56d74f32_4 > 0 { 90 zgensym_3cf2ad9d56d74f32_4-- 91 var zgensym_3cf2ad9d56d74f32_0 string 92 var zgensym_3cf2ad9d56d74f32_1 *User 93 zgensym_3cf2ad9d56d74f32_0, err = dc.ReadString() 94 if err != nil { 95 return 96 } 97 if dc.IsNil() { 98 err = dc.ReadNil() 99 if err != nil { 100 return 101 } 102 103 if zgensym_3cf2ad9d56d74f32_1 != nil { 104 dc.PushAlwaysNil() 105 err = zgensym_3cf2ad9d56d74f32_1.DecodeMsg(dc) 106 if err != nil { 107 return 108 } 109 dc.PopAlwaysNil() 110 } 111 } else { 112 // not Nil, we have something to read 113 114 if zgensym_3cf2ad9d56d74f32_1 == nil { 115 zgensym_3cf2ad9d56d74f32_1 = new(User) 116 } 117 err = zgensym_3cf2ad9d56d74f32_1.DecodeMsg(dc) 118 if err != nil { 119 return 120 } 121 } 122 z.U[zgensym_3cf2ad9d56d74f32_0] = zgensym_3cf2ad9d56d74f32_1 123 } 124 default: 125 err = dc.Skip() 126 if err != nil { 127 return 128 } 129 } 130 } 131 if nextMiss2zgensym_3cf2ad9d56d74f32_3 != -1 { 132 dc.PopAlwaysNil() 133 } 134 135 if sawTopNil { 136 dc.PopAlwaysNil() 137 } 138 139 if p, ok := interface{}(z).(msgp.PostLoad); ok { 140 p.PostLoadHook() 141 } 142 143 return 144 } 145 146 // fields of AtomicUserMap 147 var decodeMsgFieldOrder2zgensym_3cf2ad9d56d74f32_3 = []string{"U__map"} 148 149 var decodeMsgFieldSkip2zgensym_3cf2ad9d56d74f32_3 = []bool{false} 150 151 // fieldsNotEmpty supports omitempty tags 152 func (z *AtomicUserMap) fieldsNotEmpty(isempty []bool) uint32 { 153 if len(isempty) == 0 { 154 return 1 155 } 156 var fieldsInUse uint32 = 1 157 isempty[0] = (len(z.U) == 0) // string, omitempty 158 if isempty[0] { 159 fieldsInUse-- 160 } 161 162 return fieldsInUse 163 } 164 165 // EncodeMsg implements msgp.Encodable 166 func (z *AtomicUserMap) EncodeMsg(en *msgp.Writer) (err error) { 167 if p, ok := interface{}(z).(msgp.PreSave); ok { 168 p.PreSaveHook() 169 } 170 171 // honor the omitempty tags 172 var empty_zgensym_3cf2ad9d56d74f32_5 [1]bool 173 fieldsInUse_zgensym_3cf2ad9d56d74f32_6 := z.fieldsNotEmpty(empty_zgensym_3cf2ad9d56d74f32_5[:]) 174 175 // map header 176 err = en.WriteMapHeader(fieldsInUse_zgensym_3cf2ad9d56d74f32_6) 177 if err != nil { 178 return err 179 } 180 181 if !empty_zgensym_3cf2ad9d56d74f32_5[0] { 182 // write "U__map" 183 err = en.Append(0xa6, 0x55, 0x5f, 0x5f, 0x6d, 0x61, 0x70) 184 if err != nil { 185 return err 186 } 187 err = en.WriteMapHeader(uint32(len(z.U))) 188 if err != nil { 189 return 190 } 191 for zgensym_3cf2ad9d56d74f32_0, zgensym_3cf2ad9d56d74f32_1 := range z.U { 192 err = en.WriteString(zgensym_3cf2ad9d56d74f32_0) 193 if err != nil { 194 return 195 } 196 if zgensym_3cf2ad9d56d74f32_1 == nil { 197 err = en.WriteNil() 198 if err != nil { 199 return 200 } 201 } else { 202 err = zgensym_3cf2ad9d56d74f32_1.EncodeMsg(en) 203 if err != nil { 204 return 205 } 206 } 207 } 208 } 209 210 return 211 } 212 213 // MarshalMsg implements msgp.Marshaler 214 func (z *AtomicUserMap) MarshalMsg(b []byte) (o []byte, err error) { 215 if p, ok := interface{}(z).(msgp.PreSave); ok { 216 p.PreSaveHook() 217 } 218 219 o = msgp.Require(b, z.Msgsize()) 220 221 // honor the omitempty tags 222 var empty [1]bool 223 fieldsInUse := z.fieldsNotEmpty(empty[:]) 224 o = msgp.AppendMapHeader(o, fieldsInUse) 225 226 if !empty[0] { 227 // string "U__map" 228 o = append(o, 0xa6, 0x55, 0x5f, 0x5f, 0x6d, 0x61, 0x70) 229 o = msgp.AppendMapHeader(o, uint32(len(z.U))) 230 for zgensym_3cf2ad9d56d74f32_0, zgensym_3cf2ad9d56d74f32_1 := range z.U { 231 o = msgp.AppendString(o, zgensym_3cf2ad9d56d74f32_0) 232 if zgensym_3cf2ad9d56d74f32_1 == nil { 233 o = msgp.AppendNil(o) 234 } else { 235 o, err = zgensym_3cf2ad9d56d74f32_1.MarshalMsg(o) 236 if err != nil { 237 return 238 } 239 } 240 } 241 } 242 243 return 244 } 245 246 // UnmarshalMsg implements msgp.Unmarshaler 247 func (z *AtomicUserMap) UnmarshalMsg(bts []byte) (o []byte, err error) { 248 return z.UnmarshalMsgWithCfg(bts, nil) 249 } 250 func (z *AtomicUserMap) UnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) { 251 var nbs msgp.NilBitsStack 252 nbs.Init(cfg) 253 var sawTopNil bool 254 if msgp.IsNil(bts) { 255 sawTopNil = true 256 bts = nbs.PushAlwaysNil(bts[1:]) 257 } 258 259 var field []byte 260 _ = field 261 const maxFields7zgensym_3cf2ad9d56d74f32_8 = 1 262 263 // -- templateUnmarshalMsg starts here-- 264 var totalEncodedFields7zgensym_3cf2ad9d56d74f32_8 uint32 265 if !nbs.AlwaysNil { 266 totalEncodedFields7zgensym_3cf2ad9d56d74f32_8, bts, err = nbs.ReadMapHeaderBytes(bts) 267 if err != nil { 268 return 269 } 270 } 271 encodedFieldsLeft7zgensym_3cf2ad9d56d74f32_8 := totalEncodedFields7zgensym_3cf2ad9d56d74f32_8 272 missingFieldsLeft7zgensym_3cf2ad9d56d74f32_8 := maxFields7zgensym_3cf2ad9d56d74f32_8 - totalEncodedFields7zgensym_3cf2ad9d56d74f32_8 273 274 var nextMiss7zgensym_3cf2ad9d56d74f32_8 int32 = -1 275 var found7zgensym_3cf2ad9d56d74f32_8 [maxFields7zgensym_3cf2ad9d56d74f32_8]bool 276 var curField7zgensym_3cf2ad9d56d74f32_8 string 277 278 doneWithStruct7zgensym_3cf2ad9d56d74f32_8: 279 // First fill all the encoded fields, then 280 // treat the remaining, missing fields, as Nil. 281 for encodedFieldsLeft7zgensym_3cf2ad9d56d74f32_8 > 0 || missingFieldsLeft7zgensym_3cf2ad9d56d74f32_8 > 0 { 282 //fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft7zgensym_3cf2ad9d56d74f32_8, missingFieldsLeft7zgensym_3cf2ad9d56d74f32_8, msgp.ShowFound(found7zgensym_3cf2ad9d56d74f32_8[:]), unmarshalMsgFieldOrder7zgensym_3cf2ad9d56d74f32_8) 283 if encodedFieldsLeft7zgensym_3cf2ad9d56d74f32_8 > 0 { 284 encodedFieldsLeft7zgensym_3cf2ad9d56d74f32_8-- 285 field, bts, err = nbs.ReadMapKeyZC(bts) 286 if err != nil { 287 return 288 } 289 curField7zgensym_3cf2ad9d56d74f32_8 = msgp.UnsafeString(field) 290 } else { 291 //missing fields need handling 292 if nextMiss7zgensym_3cf2ad9d56d74f32_8 < 0 { 293 // set bts to contain just mnil (0xc0) 294 bts = nbs.PushAlwaysNil(bts) 295 nextMiss7zgensym_3cf2ad9d56d74f32_8 = 0 296 } 297 for nextMiss7zgensym_3cf2ad9d56d74f32_8 < maxFields7zgensym_3cf2ad9d56d74f32_8 && (found7zgensym_3cf2ad9d56d74f32_8[nextMiss7zgensym_3cf2ad9d56d74f32_8] || unmarshalMsgFieldSkip7zgensym_3cf2ad9d56d74f32_8[nextMiss7zgensym_3cf2ad9d56d74f32_8]) { 298 nextMiss7zgensym_3cf2ad9d56d74f32_8++ 299 } 300 if nextMiss7zgensym_3cf2ad9d56d74f32_8 == maxFields7zgensym_3cf2ad9d56d74f32_8 { 301 // filled all the empty fields! 302 break doneWithStruct7zgensym_3cf2ad9d56d74f32_8 303 } 304 missingFieldsLeft7zgensym_3cf2ad9d56d74f32_8-- 305 curField7zgensym_3cf2ad9d56d74f32_8 = unmarshalMsgFieldOrder7zgensym_3cf2ad9d56d74f32_8[nextMiss7zgensym_3cf2ad9d56d74f32_8] 306 } 307 //fmt.Printf("switching on curField: '%v'\n", curField7zgensym_3cf2ad9d56d74f32_8) 308 switch curField7zgensym_3cf2ad9d56d74f32_8 { 309 // -- templateUnmarshalMsg ends here -- 310 311 case "U__map": 312 found7zgensym_3cf2ad9d56d74f32_8[0] = true 313 if nbs.AlwaysNil { 314 if len(z.U) > 0 { 315 for key, _ := range z.U { 316 delete(z.U, key) 317 } 318 } 319 320 } else { 321 322 var zgensym_3cf2ad9d56d74f32_9 uint32 323 zgensym_3cf2ad9d56d74f32_9, bts, err = nbs.ReadMapHeaderBytes(bts) 324 if err != nil { 325 return 326 } 327 if z.U == nil && zgensym_3cf2ad9d56d74f32_9 > 0 { 328 z.U = make(map[string]*User, zgensym_3cf2ad9d56d74f32_9) 329 } else if len(z.U) > 0 { 330 for key, _ := range z.U { 331 delete(z.U, key) 332 } 333 } 334 for zgensym_3cf2ad9d56d74f32_9 > 0 { 335 var zgensym_3cf2ad9d56d74f32_0 string 336 var zgensym_3cf2ad9d56d74f32_1 *User 337 zgensym_3cf2ad9d56d74f32_9-- 338 zgensym_3cf2ad9d56d74f32_0, bts, err = nbs.ReadStringBytes(bts) 339 if err != nil { 340 return 341 } 342 if nbs.AlwaysNil { 343 if zgensym_3cf2ad9d56d74f32_1 != nil { 344 zgensym_3cf2ad9d56d74f32_1.UnmarshalMsg(msgp.OnlyNilSlice) 345 } 346 } else { 347 // not nbs.AlwaysNil 348 if msgp.IsNil(bts) { 349 bts = bts[1:] 350 if nil != zgensym_3cf2ad9d56d74f32_1 { 351 zgensym_3cf2ad9d56d74f32_1.UnmarshalMsg(msgp.OnlyNilSlice) 352 } 353 } else { 354 // not nbs.AlwaysNil and not IsNil(bts): have something to read 355 356 if zgensym_3cf2ad9d56d74f32_1 == nil { 357 zgensym_3cf2ad9d56d74f32_1 = new(User) 358 } 359 bts, err = zgensym_3cf2ad9d56d74f32_1.UnmarshalMsg(bts) 360 if err != nil { 361 return 362 } 363 if err != nil { 364 return 365 } 366 } 367 } 368 z.U[zgensym_3cf2ad9d56d74f32_0] = zgensym_3cf2ad9d56d74f32_1 369 } 370 } 371 default: 372 bts, err = msgp.Skip(bts) 373 if err != nil { 374 return 375 } 376 } 377 } 378 if nextMiss7zgensym_3cf2ad9d56d74f32_8 != -1 { 379 bts = nbs.PopAlwaysNil() 380 } 381 382 if sawTopNil { 383 bts = nbs.PopAlwaysNil() 384 } 385 o = bts 386 if p, ok := interface{}(z).(msgp.PostLoad); ok { 387 p.PostLoadHook() 388 } 389 390 return 391 } 392 393 // fields of AtomicUserMap 394 var unmarshalMsgFieldOrder7zgensym_3cf2ad9d56d74f32_8 = []string{"U__map"} 395 396 var unmarshalMsgFieldSkip7zgensym_3cf2ad9d56d74f32_8 = []bool{false} 397 398 // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message 399 func (z *AtomicUserMap) Msgsize() (s int) { 400 s = 1 + 7 + msgp.MapHeaderSize 401 if z.U != nil { 402 for zgensym_3cf2ad9d56d74f32_0, zgensym_3cf2ad9d56d74f32_1 := range z.U { 403 _ = zgensym_3cf2ad9d56d74f32_1 404 _ = zgensym_3cf2ad9d56d74f32_0 405 s += msgp.StringPrefixSize + len(zgensym_3cf2ad9d56d74f32_0) 406 if zgensym_3cf2ad9d56d74f32_1 == nil { 407 s += msgp.NilSize 408 } else { 409 s += zgensym_3cf2ad9d56d74f32_1.Msgsize() 410 } 411 } 412 } 413 return 414 }