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  }