github.com/glycerine/zebrapack@v4.1.1-0.20181107023619-e955d028f9bf+incompatible/zebra/zebra_gen.go (about)

     1  // Code generated by ZEBRAPACK (github.com/glycerine/zebrapack). DO NOT EDIT.
     2  
     3  package zebra
     4  
     5  import (
     6  	"github.com/glycerine/zebrapack/msgp"
     7  )
     8  
     9  // DecodeMsg implements msgp.Decodable
    10  // We treat empty fields as if we read a Nil from the wire.
    11  func (z *Field) DecodeMsg(dc *msgp.Reader) (err error) {
    12  	var sawTopNil bool
    13  	if dc.IsNil() {
    14  		sawTopNil = true
    15  		err = dc.ReadNil()
    16  		if err != nil {
    17  			return
    18  		}
    19  		dc.PushAlwaysNil()
    20  	}
    21  
    22  	var field []byte
    23  	_ = field
    24  	const maxFields0zgensym_754b0115c175ee89_1 = 11
    25  
    26  	// -- templateDecodeMsg starts here--
    27  	var totalEncodedFields0zgensym_754b0115c175ee89_1 uint32
    28  	totalEncodedFields0zgensym_754b0115c175ee89_1, err = dc.ReadMapHeader()
    29  	if err != nil {
    30  		return
    31  	}
    32  	encodedFieldsLeft0zgensym_754b0115c175ee89_1 := totalEncodedFields0zgensym_754b0115c175ee89_1
    33  	missingFieldsLeft0zgensym_754b0115c175ee89_1 := maxFields0zgensym_754b0115c175ee89_1 - totalEncodedFields0zgensym_754b0115c175ee89_1
    34  
    35  	var nextMiss0zgensym_754b0115c175ee89_1 int32 = -1
    36  	var found0zgensym_754b0115c175ee89_1 [maxFields0zgensym_754b0115c175ee89_1]bool
    37  	var curField0zgensym_754b0115c175ee89_1 string
    38  
    39  doneWithStruct0zgensym_754b0115c175ee89_1:
    40  	// First fill all the encoded fields, then
    41  	// treat the remaining, missing fields, as Nil.
    42  	for encodedFieldsLeft0zgensym_754b0115c175ee89_1 > 0 || missingFieldsLeft0zgensym_754b0115c175ee89_1 > 0 {
    43  		//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft0zgensym_754b0115c175ee89_1, missingFieldsLeft0zgensym_754b0115c175ee89_1, msgp.ShowFound(found0zgensym_754b0115c175ee89_1[:]), decodeMsgFieldOrder0zgensym_754b0115c175ee89_1)
    44  		if encodedFieldsLeft0zgensym_754b0115c175ee89_1 > 0 {
    45  			encodedFieldsLeft0zgensym_754b0115c175ee89_1--
    46  			field, err = dc.ReadMapKeyPtr()
    47  			if err != nil {
    48  				return
    49  			}
    50  			curField0zgensym_754b0115c175ee89_1 = msgp.UnsafeString(field)
    51  		} else {
    52  			//missing fields need handling
    53  			if nextMiss0zgensym_754b0115c175ee89_1 < 0 {
    54  				// tell the reader to only give us Nils
    55  				// until further notice.
    56  				dc.PushAlwaysNil()
    57  				nextMiss0zgensym_754b0115c175ee89_1 = 0
    58  			}
    59  			for nextMiss0zgensym_754b0115c175ee89_1 < maxFields0zgensym_754b0115c175ee89_1 && (found0zgensym_754b0115c175ee89_1[nextMiss0zgensym_754b0115c175ee89_1] || decodeMsgFieldSkip0zgensym_754b0115c175ee89_1[nextMiss0zgensym_754b0115c175ee89_1]) {
    60  				nextMiss0zgensym_754b0115c175ee89_1++
    61  			}
    62  			if nextMiss0zgensym_754b0115c175ee89_1 == maxFields0zgensym_754b0115c175ee89_1 {
    63  				// filled all the empty fields!
    64  				break doneWithStruct0zgensym_754b0115c175ee89_1
    65  			}
    66  			missingFieldsLeft0zgensym_754b0115c175ee89_1--
    67  			curField0zgensym_754b0115c175ee89_1 = decodeMsgFieldOrder0zgensym_754b0115c175ee89_1[nextMiss0zgensym_754b0115c175ee89_1]
    68  		}
    69  		//fmt.Printf("switching on curField: '%v'\n", curField0zgensym_754b0115c175ee89_1)
    70  		switch curField0zgensym_754b0115c175ee89_1 {
    71  		// -- templateDecodeMsg ends here --
    72  
    73  		case "Zid":
    74  			found0zgensym_754b0115c175ee89_1[0] = true
    75  			z.Zid, err = dc.ReadInt64()
    76  			if err != nil {
    77  				return
    78  			}
    79  		case "FieldGoName":
    80  			found0zgensym_754b0115c175ee89_1[1] = true
    81  			z.FieldGoName, err = dc.ReadString()
    82  			if err != nil {
    83  				return
    84  			}
    85  		case "FieldTagName":
    86  			found0zgensym_754b0115c175ee89_1[2] = true
    87  			z.FieldTagName, err = dc.ReadString()
    88  			if err != nil {
    89  				return
    90  			}
    91  		case "FieldTypeStr":
    92  			found0zgensym_754b0115c175ee89_1[3] = true
    93  			z.FieldTypeStr, err = dc.ReadString()
    94  			if err != nil {
    95  				return
    96  			}
    97  		case "FieldCategory":
    98  			found0zgensym_754b0115c175ee89_1[4] = true
    99  			{
   100  				var zgensym_754b0115c175ee89_2 uint64
   101  				zgensym_754b0115c175ee89_2, err = dc.ReadUint64()
   102  				z.FieldCategory = Zkind(zgensym_754b0115c175ee89_2)
   103  			}
   104  			if err != nil {
   105  				return
   106  			}
   107  		case "FieldPrimitive":
   108  			found0zgensym_754b0115c175ee89_1[5] = true
   109  			{
   110  				var zgensym_754b0115c175ee89_3 uint64
   111  				zgensym_754b0115c175ee89_3, err = dc.ReadUint64()
   112  				z.FieldPrimitive = Zkind(zgensym_754b0115c175ee89_3)
   113  			}
   114  			if err != nil {
   115  				return
   116  			}
   117  		case "FieldFullType":
   118  			found0zgensym_754b0115c175ee89_1[6] = true
   119  			if dc.IsNil() {
   120  				err = dc.ReadNil()
   121  				if err != nil {
   122  					return
   123  				}
   124  
   125  				if z.FieldFullType != nil {
   126  					dc.PushAlwaysNil()
   127  					err = z.FieldFullType.DecodeMsg(dc)
   128  					if err != nil {
   129  						return
   130  					}
   131  					dc.PopAlwaysNil()
   132  				}
   133  			} else {
   134  				// not Nil, we have something to read
   135  
   136  				if z.FieldFullType == nil {
   137  					z.FieldFullType = new(Ztype)
   138  				}
   139  				err = z.FieldFullType.DecodeMsg(dc)
   140  				if err != nil {
   141  					return
   142  				}
   143  			}
   144  		case "OmitEmpty":
   145  			found0zgensym_754b0115c175ee89_1[7] = true
   146  			z.OmitEmpty, err = dc.ReadBool()
   147  			if err != nil {
   148  				return
   149  			}
   150  		case "Skip":
   151  			found0zgensym_754b0115c175ee89_1[8] = true
   152  			z.Skip, err = dc.ReadBool()
   153  			if err != nil {
   154  				return
   155  			}
   156  		case "Deprecated":
   157  			found0zgensym_754b0115c175ee89_1[9] = true
   158  			z.Deprecated, err = dc.ReadBool()
   159  			if err != nil {
   160  				return
   161  			}
   162  		case "ShowZero":
   163  			found0zgensym_754b0115c175ee89_1[10] = true
   164  			z.ShowZero, err = dc.ReadBool()
   165  			if err != nil {
   166  				return
   167  			}
   168  		default:
   169  			err = dc.Skip()
   170  			if err != nil {
   171  				return
   172  			}
   173  		}
   174  	}
   175  	if nextMiss0zgensym_754b0115c175ee89_1 != -1 {
   176  		dc.PopAlwaysNil()
   177  	}
   178  
   179  	if sawTopNil {
   180  		dc.PopAlwaysNil()
   181  	}
   182  
   183  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
   184  		p.PostLoadHook()
   185  	}
   186  
   187  	return
   188  }
   189  
   190  // fields of Field
   191  var decodeMsgFieldOrder0zgensym_754b0115c175ee89_1 = []string{"Zid", "FieldGoName", "FieldTagName", "FieldTypeStr", "FieldCategory", "FieldPrimitive", "FieldFullType", "OmitEmpty", "Skip", "Deprecated", "ShowZero"}
   192  
   193  var decodeMsgFieldSkip0zgensym_754b0115c175ee89_1 = []bool{false, false, false, false, false, false, false, false, false, false, false}
   194  
   195  // fieldsNotEmpty supports omitempty tags
   196  func (z *Field) fieldsNotEmpty(isempty []bool) uint32 {
   197  	if len(isempty) == 0 {
   198  		return 11
   199  	}
   200  	var fieldsInUse uint32 = 11
   201  	isempty[2] = (len(z.FieldTagName) == 0) // string, omitempty
   202  	if isempty[2] {
   203  		fieldsInUse--
   204  	}
   205  	isempty[3] = (len(z.FieldTypeStr) == 0) // string, omitempty
   206  	if isempty[3] {
   207  		fieldsInUse--
   208  	}
   209  	isempty[4] = (z.FieldCategory == 0) // number, omitempty
   210  	if isempty[4] {
   211  		fieldsInUse--
   212  	}
   213  	isempty[5] = (z.FieldPrimitive == 0) // number, omitempty
   214  	if isempty[5] {
   215  		fieldsInUse--
   216  	}
   217  	isempty[6] = (z.FieldFullType == nil) // pointer, omitempty
   218  	if isempty[6] {
   219  		fieldsInUse--
   220  	}
   221  	isempty[7] = (!z.OmitEmpty) // bool, omitempty
   222  	if isempty[7] {
   223  		fieldsInUse--
   224  	}
   225  	isempty[8] = (!z.Skip) // bool, omitempty
   226  	if isempty[8] {
   227  		fieldsInUse--
   228  	}
   229  	isempty[9] = (!z.Deprecated) // bool, omitempty
   230  	if isempty[9] {
   231  		fieldsInUse--
   232  	}
   233  	isempty[10] = (!z.ShowZero) // bool, omitempty
   234  	if isempty[10] {
   235  		fieldsInUse--
   236  	}
   237  
   238  	return fieldsInUse
   239  }
   240  
   241  // EncodeMsg implements msgp.Encodable
   242  func (z *Field) EncodeMsg(en *msgp.Writer) (err error) {
   243  	if p, ok := interface{}(z).(msgp.PreSave); ok {
   244  		p.PreSaveHook()
   245  	}
   246  
   247  	// honor the omitempty tags
   248  	var empty_zgensym_754b0115c175ee89_4 [11]bool
   249  	fieldsInUse_zgensym_754b0115c175ee89_5 := z.fieldsNotEmpty(empty_zgensym_754b0115c175ee89_4[:])
   250  
   251  	// map header
   252  	err = en.WriteMapHeader(fieldsInUse_zgensym_754b0115c175ee89_5)
   253  	if err != nil {
   254  		return err
   255  	}
   256  
   257  	// write "Zid"
   258  	err = en.Append(0xa3, 0x5a, 0x69, 0x64)
   259  	if err != nil {
   260  		return err
   261  	}
   262  	err = en.WriteInt64(z.Zid)
   263  	if err != nil {
   264  		return
   265  	}
   266  	// write "FieldGoName"
   267  	err = en.Append(0xab, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x6f, 0x4e, 0x61, 0x6d, 0x65)
   268  	if err != nil {
   269  		return err
   270  	}
   271  	err = en.WriteString(z.FieldGoName)
   272  	if err != nil {
   273  		return
   274  	}
   275  	if !empty_zgensym_754b0115c175ee89_4[2] {
   276  		// write "FieldTagName"
   277  		err = en.Append(0xac, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65)
   278  		if err != nil {
   279  			return err
   280  		}
   281  		err = en.WriteString(z.FieldTagName)
   282  		if err != nil {
   283  			return
   284  		}
   285  	}
   286  
   287  	if !empty_zgensym_754b0115c175ee89_4[3] {
   288  		// write "FieldTypeStr"
   289  		err = en.Append(0xac, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72)
   290  		if err != nil {
   291  			return err
   292  		}
   293  		err = en.WriteString(z.FieldTypeStr)
   294  		if err != nil {
   295  			return
   296  		}
   297  	}
   298  
   299  	if !empty_zgensym_754b0115c175ee89_4[4] {
   300  		// write "FieldCategory"
   301  		err = en.Append(0xad, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79)
   302  		if err != nil {
   303  			return err
   304  		}
   305  		err = en.WriteUint64(uint64(z.FieldCategory))
   306  		if err != nil {
   307  			return
   308  		}
   309  	}
   310  
   311  	if !empty_zgensym_754b0115c175ee89_4[5] {
   312  		// write "FieldPrimitive"
   313  		err = en.Append(0xae, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65)
   314  		if err != nil {
   315  			return err
   316  		}
   317  		err = en.WriteUint64(uint64(z.FieldPrimitive))
   318  		if err != nil {
   319  			return
   320  		}
   321  	}
   322  
   323  	if !empty_zgensym_754b0115c175ee89_4[6] {
   324  		// write "FieldFullType"
   325  		err = en.Append(0xad, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x75, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65)
   326  		if err != nil {
   327  			return err
   328  		}
   329  		if z.FieldFullType == nil {
   330  			err = en.WriteNil()
   331  			if err != nil {
   332  				return
   333  			}
   334  		} else {
   335  			err = z.FieldFullType.EncodeMsg(en)
   336  			if err != nil {
   337  				return
   338  			}
   339  		}
   340  	}
   341  
   342  	if !empty_zgensym_754b0115c175ee89_4[7] {
   343  		// write "OmitEmpty"
   344  		err = en.Append(0xa9, 0x4f, 0x6d, 0x69, 0x74, 0x45, 0x6d, 0x70, 0x74, 0x79)
   345  		if err != nil {
   346  			return err
   347  		}
   348  		err = en.WriteBool(z.OmitEmpty)
   349  		if err != nil {
   350  			return
   351  		}
   352  	}
   353  
   354  	if !empty_zgensym_754b0115c175ee89_4[8] {
   355  		// write "Skip"
   356  		err = en.Append(0xa4, 0x53, 0x6b, 0x69, 0x70)
   357  		if err != nil {
   358  			return err
   359  		}
   360  		err = en.WriteBool(z.Skip)
   361  		if err != nil {
   362  			return
   363  		}
   364  	}
   365  
   366  	if !empty_zgensym_754b0115c175ee89_4[9] {
   367  		// write "Deprecated"
   368  		err = en.Append(0xaa, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64)
   369  		if err != nil {
   370  			return err
   371  		}
   372  		err = en.WriteBool(z.Deprecated)
   373  		if err != nil {
   374  			return
   375  		}
   376  	}
   377  
   378  	if !empty_zgensym_754b0115c175ee89_4[10] {
   379  		// write "ShowZero"
   380  		err = en.Append(0xa8, 0x53, 0x68, 0x6f, 0x77, 0x5a, 0x65, 0x72, 0x6f)
   381  		if err != nil {
   382  			return err
   383  		}
   384  		err = en.WriteBool(z.ShowZero)
   385  		if err != nil {
   386  			return
   387  		}
   388  	}
   389  
   390  	return
   391  }
   392  
   393  // MarshalMsg implements msgp.Marshaler
   394  func (z *Field) MarshalMsg(b []byte) (o []byte, err error) {
   395  	if p, ok := interface{}(z).(msgp.PreSave); ok {
   396  		p.PreSaveHook()
   397  	}
   398  
   399  	o = msgp.Require(b, z.Msgsize())
   400  
   401  	// honor the omitempty tags
   402  	var empty [11]bool
   403  	fieldsInUse := z.fieldsNotEmpty(empty[:])
   404  	o = msgp.AppendMapHeader(o, fieldsInUse)
   405  
   406  	// string "Zid"
   407  	o = append(o, 0xa3, 0x5a, 0x69, 0x64)
   408  	o = msgp.AppendInt64(o, z.Zid)
   409  	// string "FieldGoName"
   410  	o = append(o, 0xab, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x47, 0x6f, 0x4e, 0x61, 0x6d, 0x65)
   411  	o = msgp.AppendString(o, z.FieldGoName)
   412  	if !empty[2] {
   413  		// string "FieldTagName"
   414  		o = append(o, 0xac, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65)
   415  		o = msgp.AppendString(o, z.FieldTagName)
   416  	}
   417  
   418  	if !empty[3] {
   419  		// string "FieldTypeStr"
   420  		o = append(o, 0xac, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x72)
   421  		o = msgp.AppendString(o, z.FieldTypeStr)
   422  	}
   423  
   424  	if !empty[4] {
   425  		// string "FieldCategory"
   426  		o = append(o, 0xad, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79)
   427  		o = msgp.AppendUint64(o, uint64(z.FieldCategory))
   428  	}
   429  
   430  	if !empty[5] {
   431  		// string "FieldPrimitive"
   432  		o = append(o, 0xae, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x72, 0x69, 0x6d, 0x69, 0x74, 0x69, 0x76, 0x65)
   433  		o = msgp.AppendUint64(o, uint64(z.FieldPrimitive))
   434  	}
   435  
   436  	if !empty[6] {
   437  		// string "FieldFullType"
   438  		o = append(o, 0xad, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x46, 0x75, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65)
   439  		if z.FieldFullType == nil {
   440  			o = msgp.AppendNil(o)
   441  		} else {
   442  			o, err = z.FieldFullType.MarshalMsg(o)
   443  			if err != nil {
   444  				return
   445  			}
   446  		}
   447  	}
   448  
   449  	if !empty[7] {
   450  		// string "OmitEmpty"
   451  		o = append(o, 0xa9, 0x4f, 0x6d, 0x69, 0x74, 0x45, 0x6d, 0x70, 0x74, 0x79)
   452  		o = msgp.AppendBool(o, z.OmitEmpty)
   453  	}
   454  
   455  	if !empty[8] {
   456  		// string "Skip"
   457  		o = append(o, 0xa4, 0x53, 0x6b, 0x69, 0x70)
   458  		o = msgp.AppendBool(o, z.Skip)
   459  	}
   460  
   461  	if !empty[9] {
   462  		// string "Deprecated"
   463  		o = append(o, 0xaa, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64)
   464  		o = msgp.AppendBool(o, z.Deprecated)
   465  	}
   466  
   467  	if !empty[10] {
   468  		// string "ShowZero"
   469  		o = append(o, 0xa8, 0x53, 0x68, 0x6f, 0x77, 0x5a, 0x65, 0x72, 0x6f)
   470  		o = msgp.AppendBool(o, z.ShowZero)
   471  	}
   472  
   473  	return
   474  }
   475  
   476  // UnmarshalMsg implements msgp.Unmarshaler
   477  func (z *Field) UnmarshalMsg(bts []byte) (o []byte, err error) {
   478  	return z.UnmarshalMsgWithCfg(bts, nil)
   479  }
   480  func (z *Field) UnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) {
   481  	var nbs msgp.NilBitsStack
   482  	nbs.Init(cfg)
   483  	var sawTopNil bool
   484  	if msgp.IsNil(bts) {
   485  		sawTopNil = true
   486  		bts = nbs.PushAlwaysNil(bts[1:])
   487  	}
   488  
   489  	var field []byte
   490  	_ = field
   491  	const maxFields6zgensym_754b0115c175ee89_7 = 11
   492  
   493  	// -- templateUnmarshalMsg starts here--
   494  	var totalEncodedFields6zgensym_754b0115c175ee89_7 uint32
   495  	if !nbs.AlwaysNil {
   496  		totalEncodedFields6zgensym_754b0115c175ee89_7, bts, err = nbs.ReadMapHeaderBytes(bts)
   497  		if err != nil {
   498  			return
   499  		}
   500  	}
   501  	encodedFieldsLeft6zgensym_754b0115c175ee89_7 := totalEncodedFields6zgensym_754b0115c175ee89_7
   502  	missingFieldsLeft6zgensym_754b0115c175ee89_7 := maxFields6zgensym_754b0115c175ee89_7 - totalEncodedFields6zgensym_754b0115c175ee89_7
   503  
   504  	var nextMiss6zgensym_754b0115c175ee89_7 int32 = -1
   505  	var found6zgensym_754b0115c175ee89_7 [maxFields6zgensym_754b0115c175ee89_7]bool
   506  	var curField6zgensym_754b0115c175ee89_7 string
   507  
   508  doneWithStruct6zgensym_754b0115c175ee89_7:
   509  	// First fill all the encoded fields, then
   510  	// treat the remaining, missing fields, as Nil.
   511  	for encodedFieldsLeft6zgensym_754b0115c175ee89_7 > 0 || missingFieldsLeft6zgensym_754b0115c175ee89_7 > 0 {
   512  		//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft6zgensym_754b0115c175ee89_7, missingFieldsLeft6zgensym_754b0115c175ee89_7, msgp.ShowFound(found6zgensym_754b0115c175ee89_7[:]), unmarshalMsgFieldOrder6zgensym_754b0115c175ee89_7)
   513  		if encodedFieldsLeft6zgensym_754b0115c175ee89_7 > 0 {
   514  			encodedFieldsLeft6zgensym_754b0115c175ee89_7--
   515  			field, bts, err = nbs.ReadMapKeyZC(bts)
   516  			if err != nil {
   517  				return
   518  			}
   519  			curField6zgensym_754b0115c175ee89_7 = msgp.UnsafeString(field)
   520  		} else {
   521  			//missing fields need handling
   522  			if nextMiss6zgensym_754b0115c175ee89_7 < 0 {
   523  				// set bts to contain just mnil (0xc0)
   524  				bts = nbs.PushAlwaysNil(bts)
   525  				nextMiss6zgensym_754b0115c175ee89_7 = 0
   526  			}
   527  			for nextMiss6zgensym_754b0115c175ee89_7 < maxFields6zgensym_754b0115c175ee89_7 && (found6zgensym_754b0115c175ee89_7[nextMiss6zgensym_754b0115c175ee89_7] || unmarshalMsgFieldSkip6zgensym_754b0115c175ee89_7[nextMiss6zgensym_754b0115c175ee89_7]) {
   528  				nextMiss6zgensym_754b0115c175ee89_7++
   529  			}
   530  			if nextMiss6zgensym_754b0115c175ee89_7 == maxFields6zgensym_754b0115c175ee89_7 {
   531  				// filled all the empty fields!
   532  				break doneWithStruct6zgensym_754b0115c175ee89_7
   533  			}
   534  			missingFieldsLeft6zgensym_754b0115c175ee89_7--
   535  			curField6zgensym_754b0115c175ee89_7 = unmarshalMsgFieldOrder6zgensym_754b0115c175ee89_7[nextMiss6zgensym_754b0115c175ee89_7]
   536  		}
   537  		//fmt.Printf("switching on curField: '%v'\n", curField6zgensym_754b0115c175ee89_7)
   538  		switch curField6zgensym_754b0115c175ee89_7 {
   539  		// -- templateUnmarshalMsg ends here --
   540  
   541  		case "Zid":
   542  			found6zgensym_754b0115c175ee89_7[0] = true
   543  			z.Zid, bts, err = nbs.ReadInt64Bytes(bts)
   544  
   545  			if err != nil {
   546  				return
   547  			}
   548  		case "FieldGoName":
   549  			found6zgensym_754b0115c175ee89_7[1] = true
   550  			z.FieldGoName, bts, err = nbs.ReadStringBytes(bts)
   551  
   552  			if err != nil {
   553  				return
   554  			}
   555  		case "FieldTagName":
   556  			found6zgensym_754b0115c175ee89_7[2] = true
   557  			z.FieldTagName, bts, err = nbs.ReadStringBytes(bts)
   558  
   559  			if err != nil {
   560  				return
   561  			}
   562  		case "FieldTypeStr":
   563  			found6zgensym_754b0115c175ee89_7[3] = true
   564  			z.FieldTypeStr, bts, err = nbs.ReadStringBytes(bts)
   565  
   566  			if err != nil {
   567  				return
   568  			}
   569  		case "FieldCategory":
   570  			found6zgensym_754b0115c175ee89_7[4] = true
   571  			{
   572  				var zgensym_754b0115c175ee89_8 uint64
   573  				zgensym_754b0115c175ee89_8, bts, err = nbs.ReadUint64Bytes(bts)
   574  
   575  				if err != nil {
   576  					return
   577  				}
   578  				z.FieldCategory = Zkind(zgensym_754b0115c175ee89_8)
   579  			}
   580  		case "FieldPrimitive":
   581  			found6zgensym_754b0115c175ee89_7[5] = true
   582  			{
   583  				var zgensym_754b0115c175ee89_9 uint64
   584  				zgensym_754b0115c175ee89_9, bts, err = nbs.ReadUint64Bytes(bts)
   585  
   586  				if err != nil {
   587  					return
   588  				}
   589  				z.FieldPrimitive = Zkind(zgensym_754b0115c175ee89_9)
   590  			}
   591  		case "FieldFullType":
   592  			found6zgensym_754b0115c175ee89_7[6] = true
   593  			if nbs.AlwaysNil {
   594  				if z.FieldFullType != nil {
   595  					z.FieldFullType.UnmarshalMsg(msgp.OnlyNilSlice)
   596  				}
   597  			} else {
   598  				// not nbs.AlwaysNil
   599  				if msgp.IsNil(bts) {
   600  					bts = bts[1:]
   601  					if nil != z.FieldFullType {
   602  						z.FieldFullType.UnmarshalMsg(msgp.OnlyNilSlice)
   603  					}
   604  				} else {
   605  					// not nbs.AlwaysNil and not IsNil(bts): have something to read
   606  
   607  					if z.FieldFullType == nil {
   608  						z.FieldFullType = new(Ztype)
   609  					}
   610  					bts, err = z.FieldFullType.UnmarshalMsg(bts)
   611  					if err != nil {
   612  						return
   613  					}
   614  					if err != nil {
   615  						return
   616  					}
   617  				}
   618  			}
   619  		case "OmitEmpty":
   620  			found6zgensym_754b0115c175ee89_7[7] = true
   621  			z.OmitEmpty, bts, err = nbs.ReadBoolBytes(bts)
   622  
   623  			if err != nil {
   624  				return
   625  			}
   626  		case "Skip":
   627  			found6zgensym_754b0115c175ee89_7[8] = true
   628  			z.Skip, bts, err = nbs.ReadBoolBytes(bts)
   629  
   630  			if err != nil {
   631  				return
   632  			}
   633  		case "Deprecated":
   634  			found6zgensym_754b0115c175ee89_7[9] = true
   635  			z.Deprecated, bts, err = nbs.ReadBoolBytes(bts)
   636  
   637  			if err != nil {
   638  				return
   639  			}
   640  		case "ShowZero":
   641  			found6zgensym_754b0115c175ee89_7[10] = true
   642  			z.ShowZero, bts, err = nbs.ReadBoolBytes(bts)
   643  
   644  			if err != nil {
   645  				return
   646  			}
   647  		default:
   648  			bts, err = msgp.Skip(bts)
   649  			if err != nil {
   650  				return
   651  			}
   652  		}
   653  	}
   654  	if nextMiss6zgensym_754b0115c175ee89_7 != -1 {
   655  		bts = nbs.PopAlwaysNil()
   656  	}
   657  
   658  	if sawTopNil {
   659  		bts = nbs.PopAlwaysNil()
   660  	}
   661  	o = bts
   662  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
   663  		p.PostLoadHook()
   664  	}
   665  
   666  	return
   667  }
   668  
   669  // fields of Field
   670  var unmarshalMsgFieldOrder6zgensym_754b0115c175ee89_7 = []string{"Zid", "FieldGoName", "FieldTagName", "FieldTypeStr", "FieldCategory", "FieldPrimitive", "FieldFullType", "OmitEmpty", "Skip", "Deprecated", "ShowZero"}
   671  
   672  var unmarshalMsgFieldSkip6zgensym_754b0115c175ee89_7 = []bool{false, false, false, false, false, false, false, false, false, false, false}
   673  
   674  // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
   675  func (z *Field) Msgsize() (s int) {
   676  	s = 1 + 4 + msgp.Int64Size + 12 + msgp.StringPrefixSize + len(z.FieldGoName) + 13 + msgp.StringPrefixSize + len(z.FieldTagName) + 13 + msgp.StringPrefixSize + len(z.FieldTypeStr) + 14 + msgp.Uint64Size + 15 + msgp.Uint64Size + 14
   677  	if z.FieldFullType == nil {
   678  		s += msgp.NilSize
   679  	} else {
   680  		s += z.FieldFullType.Msgsize()
   681  	}
   682  	s += 10 + msgp.BoolSize + 5 + msgp.BoolSize + 11 + msgp.BoolSize + 9 + msgp.BoolSize
   683  	return
   684  }
   685  
   686  // DecodeMsg implements msgp.Decodable
   687  // We treat empty fields as if we read a Nil from the wire.
   688  func (z *Schema) DecodeMsg(dc *msgp.Reader) (err error) {
   689  	var sawTopNil bool
   690  	if dc.IsNil() {
   691  		sawTopNil = true
   692  		err = dc.ReadNil()
   693  		if err != nil {
   694  			return
   695  		}
   696  		dc.PushAlwaysNil()
   697  	}
   698  
   699  	var field []byte
   700  	_ = field
   701  	const maxFields14zgensym_754b0115c175ee89_15 = 5
   702  
   703  	// -- templateDecodeMsg starts here--
   704  	var totalEncodedFields14zgensym_754b0115c175ee89_15 uint32
   705  	totalEncodedFields14zgensym_754b0115c175ee89_15, err = dc.ReadMapHeader()
   706  	if err != nil {
   707  		return
   708  	}
   709  	encodedFieldsLeft14zgensym_754b0115c175ee89_15 := totalEncodedFields14zgensym_754b0115c175ee89_15
   710  	missingFieldsLeft14zgensym_754b0115c175ee89_15 := maxFields14zgensym_754b0115c175ee89_15 - totalEncodedFields14zgensym_754b0115c175ee89_15
   711  
   712  	var nextMiss14zgensym_754b0115c175ee89_15 int32 = -1
   713  	var found14zgensym_754b0115c175ee89_15 [maxFields14zgensym_754b0115c175ee89_15]bool
   714  	var curField14zgensym_754b0115c175ee89_15 string
   715  
   716  doneWithStruct14zgensym_754b0115c175ee89_15:
   717  	// First fill all the encoded fields, then
   718  	// treat the remaining, missing fields, as Nil.
   719  	for encodedFieldsLeft14zgensym_754b0115c175ee89_15 > 0 || missingFieldsLeft14zgensym_754b0115c175ee89_15 > 0 {
   720  		//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft14zgensym_754b0115c175ee89_15, missingFieldsLeft14zgensym_754b0115c175ee89_15, msgp.ShowFound(found14zgensym_754b0115c175ee89_15[:]), decodeMsgFieldOrder14zgensym_754b0115c175ee89_15)
   721  		if encodedFieldsLeft14zgensym_754b0115c175ee89_15 > 0 {
   722  			encodedFieldsLeft14zgensym_754b0115c175ee89_15--
   723  			field, err = dc.ReadMapKeyPtr()
   724  			if err != nil {
   725  				return
   726  			}
   727  			curField14zgensym_754b0115c175ee89_15 = msgp.UnsafeString(field)
   728  		} else {
   729  			//missing fields need handling
   730  			if nextMiss14zgensym_754b0115c175ee89_15 < 0 {
   731  				// tell the reader to only give us Nils
   732  				// until further notice.
   733  				dc.PushAlwaysNil()
   734  				nextMiss14zgensym_754b0115c175ee89_15 = 0
   735  			}
   736  			for nextMiss14zgensym_754b0115c175ee89_15 < maxFields14zgensym_754b0115c175ee89_15 && (found14zgensym_754b0115c175ee89_15[nextMiss14zgensym_754b0115c175ee89_15] || decodeMsgFieldSkip14zgensym_754b0115c175ee89_15[nextMiss14zgensym_754b0115c175ee89_15]) {
   737  				nextMiss14zgensym_754b0115c175ee89_15++
   738  			}
   739  			if nextMiss14zgensym_754b0115c175ee89_15 == maxFields14zgensym_754b0115c175ee89_15 {
   740  				// filled all the empty fields!
   741  				break doneWithStruct14zgensym_754b0115c175ee89_15
   742  			}
   743  			missingFieldsLeft14zgensym_754b0115c175ee89_15--
   744  			curField14zgensym_754b0115c175ee89_15 = decodeMsgFieldOrder14zgensym_754b0115c175ee89_15[nextMiss14zgensym_754b0115c175ee89_15]
   745  		}
   746  		//fmt.Printf("switching on curField: '%v'\n", curField14zgensym_754b0115c175ee89_15)
   747  		switch curField14zgensym_754b0115c175ee89_15 {
   748  		// -- templateDecodeMsg ends here --
   749  
   750  		case "SourcePath":
   751  			found14zgensym_754b0115c175ee89_15[0] = true
   752  			z.SourcePath, err = dc.ReadString()
   753  			if err != nil {
   754  				return
   755  			}
   756  		case "SourcePackage":
   757  			found14zgensym_754b0115c175ee89_15[1] = true
   758  			z.SourcePackage, err = dc.ReadString()
   759  			if err != nil {
   760  				return
   761  			}
   762  		case "ZebraSchemaId":
   763  			found14zgensym_754b0115c175ee89_15[2] = true
   764  			z.ZebraSchemaId, err = dc.ReadInt64()
   765  			if err != nil {
   766  				return
   767  			}
   768  		case "Structs":
   769  			found14zgensym_754b0115c175ee89_15[3] = true
   770  			var zgensym_754b0115c175ee89_16 uint32
   771  			zgensym_754b0115c175ee89_16, err = dc.ReadMapHeader()
   772  			if err != nil {
   773  				return
   774  			}
   775  			if z.Structs == nil && zgensym_754b0115c175ee89_16 > 0 {
   776  				z.Structs = make(map[string]*Struct, zgensym_754b0115c175ee89_16)
   777  			} else if len(z.Structs) > 0 {
   778  				for key, _ := range z.Structs {
   779  					delete(z.Structs, key)
   780  				}
   781  			}
   782  			for zgensym_754b0115c175ee89_16 > 0 {
   783  				zgensym_754b0115c175ee89_16--
   784  				var zgensym_754b0115c175ee89_10 string
   785  				var zgensym_754b0115c175ee89_11 *Struct
   786  				zgensym_754b0115c175ee89_10, err = dc.ReadString()
   787  				if err != nil {
   788  					return
   789  				}
   790  				if dc.IsNil() {
   791  					err = dc.ReadNil()
   792  					if err != nil {
   793  						return
   794  					}
   795  
   796  					zgensym_754b0115c175ee89_11 = nil
   797  				} else {
   798  					if zgensym_754b0115c175ee89_11 == nil {
   799  						zgensym_754b0115c175ee89_11 = new(Struct)
   800  					}
   801  					const maxFields17zgensym_754b0115c175ee89_18 = 2
   802  
   803  					// -- templateDecodeMsg starts here--
   804  					var totalEncodedFields17zgensym_754b0115c175ee89_18 uint32
   805  					totalEncodedFields17zgensym_754b0115c175ee89_18, err = dc.ReadMapHeader()
   806  					if err != nil {
   807  						return
   808  					}
   809  					encodedFieldsLeft17zgensym_754b0115c175ee89_18 := totalEncodedFields17zgensym_754b0115c175ee89_18
   810  					missingFieldsLeft17zgensym_754b0115c175ee89_18 := maxFields17zgensym_754b0115c175ee89_18 - totalEncodedFields17zgensym_754b0115c175ee89_18
   811  
   812  					var nextMiss17zgensym_754b0115c175ee89_18 int32 = -1
   813  					var found17zgensym_754b0115c175ee89_18 [maxFields17zgensym_754b0115c175ee89_18]bool
   814  					var curField17zgensym_754b0115c175ee89_18 string
   815  
   816  				doneWithStruct17zgensym_754b0115c175ee89_18:
   817  					// First fill all the encoded fields, then
   818  					// treat the remaining, missing fields, as Nil.
   819  					for encodedFieldsLeft17zgensym_754b0115c175ee89_18 > 0 || missingFieldsLeft17zgensym_754b0115c175ee89_18 > 0 {
   820  						//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft17zgensym_754b0115c175ee89_18, missingFieldsLeft17zgensym_754b0115c175ee89_18, msgp.ShowFound(found17zgensym_754b0115c175ee89_18[:]), decodeMsgFieldOrder17zgensym_754b0115c175ee89_18)
   821  						if encodedFieldsLeft17zgensym_754b0115c175ee89_18 > 0 {
   822  							encodedFieldsLeft17zgensym_754b0115c175ee89_18--
   823  							field, err = dc.ReadMapKeyPtr()
   824  							if err != nil {
   825  								return
   826  							}
   827  							curField17zgensym_754b0115c175ee89_18 = msgp.UnsafeString(field)
   828  						} else {
   829  							//missing fields need handling
   830  							if nextMiss17zgensym_754b0115c175ee89_18 < 0 {
   831  								// tell the reader to only give us Nils
   832  								// until further notice.
   833  								dc.PushAlwaysNil()
   834  								nextMiss17zgensym_754b0115c175ee89_18 = 0
   835  							}
   836  							for nextMiss17zgensym_754b0115c175ee89_18 < maxFields17zgensym_754b0115c175ee89_18 && (found17zgensym_754b0115c175ee89_18[nextMiss17zgensym_754b0115c175ee89_18] || decodeMsgFieldSkip17zgensym_754b0115c175ee89_18[nextMiss17zgensym_754b0115c175ee89_18]) {
   837  								nextMiss17zgensym_754b0115c175ee89_18++
   838  							}
   839  							if nextMiss17zgensym_754b0115c175ee89_18 == maxFields17zgensym_754b0115c175ee89_18 {
   840  								// filled all the empty fields!
   841  								break doneWithStruct17zgensym_754b0115c175ee89_18
   842  							}
   843  							missingFieldsLeft17zgensym_754b0115c175ee89_18--
   844  							curField17zgensym_754b0115c175ee89_18 = decodeMsgFieldOrder17zgensym_754b0115c175ee89_18[nextMiss17zgensym_754b0115c175ee89_18]
   845  						}
   846  						//fmt.Printf("switching on curField: '%v'\n", curField17zgensym_754b0115c175ee89_18)
   847  						switch curField17zgensym_754b0115c175ee89_18 {
   848  						// -- templateDecodeMsg ends here --
   849  
   850  						case "StructName":
   851  							found17zgensym_754b0115c175ee89_18[0] = true
   852  							zgensym_754b0115c175ee89_11.StructName, err = dc.ReadString()
   853  							if err != nil {
   854  								return
   855  							}
   856  						case "Fields":
   857  							found17zgensym_754b0115c175ee89_18[1] = true
   858  							var zgensym_754b0115c175ee89_19 uint32
   859  							zgensym_754b0115c175ee89_19, err = dc.ReadArrayHeader()
   860  							if err != nil {
   861  								return
   862  							}
   863  							if cap(zgensym_754b0115c175ee89_11.Fields) >= int(zgensym_754b0115c175ee89_19) {
   864  								zgensym_754b0115c175ee89_11.Fields = (zgensym_754b0115c175ee89_11.Fields)[:zgensym_754b0115c175ee89_19]
   865  							} else {
   866  								zgensym_754b0115c175ee89_11.Fields = make([]Field, zgensym_754b0115c175ee89_19)
   867  							}
   868  							for zgensym_754b0115c175ee89_12 := range zgensym_754b0115c175ee89_11.Fields {
   869  								err = zgensym_754b0115c175ee89_11.Fields[zgensym_754b0115c175ee89_12].DecodeMsg(dc)
   870  								if err != nil {
   871  									return
   872  								}
   873  							}
   874  						default:
   875  							err = dc.Skip()
   876  							if err != nil {
   877  								return
   878  							}
   879  						}
   880  					}
   881  					if nextMiss17zgensym_754b0115c175ee89_18 != -1 {
   882  						dc.PopAlwaysNil()
   883  					}
   884  
   885  				}
   886  				z.Structs[zgensym_754b0115c175ee89_10] = zgensym_754b0115c175ee89_11
   887  			}
   888  		case "Imports":
   889  			found14zgensym_754b0115c175ee89_15[4] = true
   890  			var zgensym_754b0115c175ee89_20 uint32
   891  			zgensym_754b0115c175ee89_20, err = dc.ReadArrayHeader()
   892  			if err != nil {
   893  				return
   894  			}
   895  			if cap(z.Imports) >= int(zgensym_754b0115c175ee89_20) {
   896  				z.Imports = (z.Imports)[:zgensym_754b0115c175ee89_20]
   897  			} else {
   898  				z.Imports = make([]string, zgensym_754b0115c175ee89_20)
   899  			}
   900  			for zgensym_754b0115c175ee89_13 := range z.Imports {
   901  				z.Imports[zgensym_754b0115c175ee89_13], err = dc.ReadString()
   902  				if err != nil {
   903  					return
   904  				}
   905  			}
   906  		default:
   907  			err = dc.Skip()
   908  			if err != nil {
   909  				return
   910  			}
   911  		}
   912  	}
   913  	if nextMiss14zgensym_754b0115c175ee89_15 != -1 {
   914  		dc.PopAlwaysNil()
   915  	}
   916  
   917  	if sawTopNil {
   918  		dc.PopAlwaysNil()
   919  	}
   920  
   921  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
   922  		p.PostLoadHook()
   923  	}
   924  
   925  	return
   926  }
   927  
   928  // fields of Schema
   929  var decodeMsgFieldOrder14zgensym_754b0115c175ee89_15 = []string{"SourcePath", "SourcePackage", "ZebraSchemaId", "Structs", "Imports"}
   930  
   931  var decodeMsgFieldSkip14zgensym_754b0115c175ee89_15 = []bool{false, false, false, false, false}
   932  
   933  // fields of Struct
   934  var decodeMsgFieldOrder17zgensym_754b0115c175ee89_18 = []string{"StructName", "Fields"}
   935  
   936  var decodeMsgFieldSkip17zgensym_754b0115c175ee89_18 = []bool{false, false}
   937  
   938  // fieldsNotEmpty supports omitempty tags
   939  func (z *Schema) fieldsNotEmpty(isempty []bool) uint32 {
   940  	if len(isempty) == 0 {
   941  		return 5
   942  	}
   943  	var fieldsInUse uint32 = 5
   944  	isempty[0] = (len(z.SourcePath) == 0) // string, omitempty
   945  	if isempty[0] {
   946  		fieldsInUse--
   947  	}
   948  	isempty[1] = (len(z.SourcePackage) == 0) // string, omitempty
   949  	if isempty[1] {
   950  		fieldsInUse--
   951  	}
   952  	isempty[2] = (z.ZebraSchemaId == 0) // number, omitempty
   953  	if isempty[2] {
   954  		fieldsInUse--
   955  	}
   956  	isempty[3] = (len(z.Structs) == 0) // string, omitempty
   957  	if isempty[3] {
   958  		fieldsInUse--
   959  	}
   960  	isempty[4] = (len(z.Imports) == 0) // string, omitempty
   961  	if isempty[4] {
   962  		fieldsInUse--
   963  	}
   964  
   965  	return fieldsInUse
   966  }
   967  
   968  // EncodeMsg implements msgp.Encodable
   969  func (z *Schema) EncodeMsg(en *msgp.Writer) (err error) {
   970  	if p, ok := interface{}(z).(msgp.PreSave); ok {
   971  		p.PreSaveHook()
   972  	}
   973  
   974  	// honor the omitempty tags
   975  	var empty_zgensym_754b0115c175ee89_21 [5]bool
   976  	fieldsInUse_zgensym_754b0115c175ee89_22 := z.fieldsNotEmpty(empty_zgensym_754b0115c175ee89_21[:])
   977  
   978  	// map header
   979  	err = en.WriteMapHeader(fieldsInUse_zgensym_754b0115c175ee89_22)
   980  	if err != nil {
   981  		return err
   982  	}
   983  
   984  	if !empty_zgensym_754b0115c175ee89_21[0] {
   985  		// write "SourcePath"
   986  		err = en.Append(0xaa, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68)
   987  		if err != nil {
   988  			return err
   989  		}
   990  		err = en.WriteString(z.SourcePath)
   991  		if err != nil {
   992  			return
   993  		}
   994  	}
   995  
   996  	if !empty_zgensym_754b0115c175ee89_21[1] {
   997  		// write "SourcePackage"
   998  		err = en.Append(0xad, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65)
   999  		if err != nil {
  1000  			return err
  1001  		}
  1002  		err = en.WriteString(z.SourcePackage)
  1003  		if err != nil {
  1004  			return
  1005  		}
  1006  	}
  1007  
  1008  	if !empty_zgensym_754b0115c175ee89_21[2] {
  1009  		// write "ZebraSchemaId"
  1010  		err = en.Append(0xad, 0x5a, 0x65, 0x62, 0x72, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x64)
  1011  		if err != nil {
  1012  			return err
  1013  		}
  1014  		err = en.WriteInt64(z.ZebraSchemaId)
  1015  		if err != nil {
  1016  			return
  1017  		}
  1018  	}
  1019  
  1020  	if !empty_zgensym_754b0115c175ee89_21[3] {
  1021  		// write "Structs"
  1022  		err = en.Append(0xa7, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x73)
  1023  		if err != nil {
  1024  			return err
  1025  		}
  1026  		err = en.WriteMapHeader(uint32(len(z.Structs)))
  1027  		if err != nil {
  1028  			return
  1029  		}
  1030  		for zgensym_754b0115c175ee89_10, zgensym_754b0115c175ee89_11 := range z.Structs {
  1031  			err = en.WriteString(zgensym_754b0115c175ee89_10)
  1032  			if err != nil {
  1033  				return
  1034  			}
  1035  			if zgensym_754b0115c175ee89_11 == nil {
  1036  				err = en.WriteNil()
  1037  				if err != nil {
  1038  					return
  1039  				}
  1040  			} else {
  1041  				// map header, size 2
  1042  				// write "StructName"
  1043  				err = en.Append(0x82, 0xaa, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65)
  1044  				if err != nil {
  1045  					return err
  1046  				}
  1047  				err = en.WriteString(zgensym_754b0115c175ee89_11.StructName)
  1048  				if err != nil {
  1049  					return
  1050  				}
  1051  				// write "Fields"
  1052  				err = en.Append(0xa6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73)
  1053  				if err != nil {
  1054  					return err
  1055  				}
  1056  				err = en.WriteArrayHeader(uint32(len(zgensym_754b0115c175ee89_11.Fields)))
  1057  				if err != nil {
  1058  					return
  1059  				}
  1060  				for zgensym_754b0115c175ee89_12 := range zgensym_754b0115c175ee89_11.Fields {
  1061  					err = zgensym_754b0115c175ee89_11.Fields[zgensym_754b0115c175ee89_12].EncodeMsg(en)
  1062  					if err != nil {
  1063  						return
  1064  					}
  1065  				}
  1066  			}
  1067  		}
  1068  	}
  1069  
  1070  	if !empty_zgensym_754b0115c175ee89_21[4] {
  1071  		// write "Imports"
  1072  		err = en.Append(0xa7, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73)
  1073  		if err != nil {
  1074  			return err
  1075  		}
  1076  		err = en.WriteArrayHeader(uint32(len(z.Imports)))
  1077  		if err != nil {
  1078  			return
  1079  		}
  1080  		for zgensym_754b0115c175ee89_13 := range z.Imports {
  1081  			err = en.WriteString(z.Imports[zgensym_754b0115c175ee89_13])
  1082  			if err != nil {
  1083  				return
  1084  			}
  1085  		}
  1086  	}
  1087  
  1088  	return
  1089  }
  1090  
  1091  // MarshalMsg implements msgp.Marshaler
  1092  func (z *Schema) MarshalMsg(b []byte) (o []byte, err error) {
  1093  	if p, ok := interface{}(z).(msgp.PreSave); ok {
  1094  		p.PreSaveHook()
  1095  	}
  1096  
  1097  	o = msgp.Require(b, z.Msgsize())
  1098  
  1099  	// honor the omitempty tags
  1100  	var empty [5]bool
  1101  	fieldsInUse := z.fieldsNotEmpty(empty[:])
  1102  	o = msgp.AppendMapHeader(o, fieldsInUse)
  1103  
  1104  	if !empty[0] {
  1105  		// string "SourcePath"
  1106  		o = append(o, 0xaa, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68)
  1107  		o = msgp.AppendString(o, z.SourcePath)
  1108  	}
  1109  
  1110  	if !empty[1] {
  1111  		// string "SourcePackage"
  1112  		o = append(o, 0xad, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65)
  1113  		o = msgp.AppendString(o, z.SourcePackage)
  1114  	}
  1115  
  1116  	if !empty[2] {
  1117  		// string "ZebraSchemaId"
  1118  		o = append(o, 0xad, 0x5a, 0x65, 0x62, 0x72, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x49, 0x64)
  1119  		o = msgp.AppendInt64(o, z.ZebraSchemaId)
  1120  	}
  1121  
  1122  	if !empty[3] {
  1123  		// string "Structs"
  1124  		o = append(o, 0xa7, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x73)
  1125  		o = msgp.AppendMapHeader(o, uint32(len(z.Structs)))
  1126  		for zgensym_754b0115c175ee89_10, zgensym_754b0115c175ee89_11 := range z.Structs {
  1127  			o = msgp.AppendString(o, zgensym_754b0115c175ee89_10)
  1128  			if zgensym_754b0115c175ee89_11 == nil {
  1129  				o = msgp.AppendNil(o)
  1130  			} else {
  1131  				// map header, size 2
  1132  				// string "StructName"
  1133  				o = append(o, 0x82, 0xaa, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65)
  1134  				o = msgp.AppendString(o, zgensym_754b0115c175ee89_11.StructName)
  1135  				// string "Fields"
  1136  				o = append(o, 0xa6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73)
  1137  				o = msgp.AppendArrayHeader(o, uint32(len(zgensym_754b0115c175ee89_11.Fields)))
  1138  				for zgensym_754b0115c175ee89_12 := range zgensym_754b0115c175ee89_11.Fields {
  1139  					o, err = zgensym_754b0115c175ee89_11.Fields[zgensym_754b0115c175ee89_12].MarshalMsg(o)
  1140  					if err != nil {
  1141  						return
  1142  					}
  1143  				}
  1144  			}
  1145  		}
  1146  	}
  1147  
  1148  	if !empty[4] {
  1149  		// string "Imports"
  1150  		o = append(o, 0xa7, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x73)
  1151  		o = msgp.AppendArrayHeader(o, uint32(len(z.Imports)))
  1152  		for zgensym_754b0115c175ee89_13 := range z.Imports {
  1153  			o = msgp.AppendString(o, z.Imports[zgensym_754b0115c175ee89_13])
  1154  		}
  1155  	}
  1156  
  1157  	return
  1158  }
  1159  
  1160  // UnmarshalMsg implements msgp.Unmarshaler
  1161  func (z *Schema) UnmarshalMsg(bts []byte) (o []byte, err error) {
  1162  	return z.UnmarshalMsgWithCfg(bts, nil)
  1163  }
  1164  func (z *Schema) UnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) {
  1165  	var nbs msgp.NilBitsStack
  1166  	nbs.Init(cfg)
  1167  	var sawTopNil bool
  1168  	if msgp.IsNil(bts) {
  1169  		sawTopNil = true
  1170  		bts = nbs.PushAlwaysNil(bts[1:])
  1171  	}
  1172  
  1173  	var field []byte
  1174  	_ = field
  1175  	const maxFields25zgensym_754b0115c175ee89_26 = 5
  1176  
  1177  	// -- templateUnmarshalMsg starts here--
  1178  	var totalEncodedFields25zgensym_754b0115c175ee89_26 uint32
  1179  	if !nbs.AlwaysNil {
  1180  		totalEncodedFields25zgensym_754b0115c175ee89_26, bts, err = nbs.ReadMapHeaderBytes(bts)
  1181  		if err != nil {
  1182  			return
  1183  		}
  1184  	}
  1185  	encodedFieldsLeft25zgensym_754b0115c175ee89_26 := totalEncodedFields25zgensym_754b0115c175ee89_26
  1186  	missingFieldsLeft25zgensym_754b0115c175ee89_26 := maxFields25zgensym_754b0115c175ee89_26 - totalEncodedFields25zgensym_754b0115c175ee89_26
  1187  
  1188  	var nextMiss25zgensym_754b0115c175ee89_26 int32 = -1
  1189  	var found25zgensym_754b0115c175ee89_26 [maxFields25zgensym_754b0115c175ee89_26]bool
  1190  	var curField25zgensym_754b0115c175ee89_26 string
  1191  
  1192  doneWithStruct25zgensym_754b0115c175ee89_26:
  1193  	// First fill all the encoded fields, then
  1194  	// treat the remaining, missing fields, as Nil.
  1195  	for encodedFieldsLeft25zgensym_754b0115c175ee89_26 > 0 || missingFieldsLeft25zgensym_754b0115c175ee89_26 > 0 {
  1196  		//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft25zgensym_754b0115c175ee89_26, missingFieldsLeft25zgensym_754b0115c175ee89_26, msgp.ShowFound(found25zgensym_754b0115c175ee89_26[:]), unmarshalMsgFieldOrder25zgensym_754b0115c175ee89_26)
  1197  		if encodedFieldsLeft25zgensym_754b0115c175ee89_26 > 0 {
  1198  			encodedFieldsLeft25zgensym_754b0115c175ee89_26--
  1199  			field, bts, err = nbs.ReadMapKeyZC(bts)
  1200  			if err != nil {
  1201  				return
  1202  			}
  1203  			curField25zgensym_754b0115c175ee89_26 = msgp.UnsafeString(field)
  1204  		} else {
  1205  			//missing fields need handling
  1206  			if nextMiss25zgensym_754b0115c175ee89_26 < 0 {
  1207  				// set bts to contain just mnil (0xc0)
  1208  				bts = nbs.PushAlwaysNil(bts)
  1209  				nextMiss25zgensym_754b0115c175ee89_26 = 0
  1210  			}
  1211  			for nextMiss25zgensym_754b0115c175ee89_26 < maxFields25zgensym_754b0115c175ee89_26 && (found25zgensym_754b0115c175ee89_26[nextMiss25zgensym_754b0115c175ee89_26] || unmarshalMsgFieldSkip25zgensym_754b0115c175ee89_26[nextMiss25zgensym_754b0115c175ee89_26]) {
  1212  				nextMiss25zgensym_754b0115c175ee89_26++
  1213  			}
  1214  			if nextMiss25zgensym_754b0115c175ee89_26 == maxFields25zgensym_754b0115c175ee89_26 {
  1215  				// filled all the empty fields!
  1216  				break doneWithStruct25zgensym_754b0115c175ee89_26
  1217  			}
  1218  			missingFieldsLeft25zgensym_754b0115c175ee89_26--
  1219  			curField25zgensym_754b0115c175ee89_26 = unmarshalMsgFieldOrder25zgensym_754b0115c175ee89_26[nextMiss25zgensym_754b0115c175ee89_26]
  1220  		}
  1221  		//fmt.Printf("switching on curField: '%v'\n", curField25zgensym_754b0115c175ee89_26)
  1222  		switch curField25zgensym_754b0115c175ee89_26 {
  1223  		// -- templateUnmarshalMsg ends here --
  1224  
  1225  		case "SourcePath":
  1226  			found25zgensym_754b0115c175ee89_26[0] = true
  1227  			z.SourcePath, bts, err = nbs.ReadStringBytes(bts)
  1228  
  1229  			if err != nil {
  1230  				return
  1231  			}
  1232  		case "SourcePackage":
  1233  			found25zgensym_754b0115c175ee89_26[1] = true
  1234  			z.SourcePackage, bts, err = nbs.ReadStringBytes(bts)
  1235  
  1236  			if err != nil {
  1237  				return
  1238  			}
  1239  		case "ZebraSchemaId":
  1240  			found25zgensym_754b0115c175ee89_26[2] = true
  1241  			z.ZebraSchemaId, bts, err = nbs.ReadInt64Bytes(bts)
  1242  
  1243  			if err != nil {
  1244  				return
  1245  			}
  1246  		case "Structs":
  1247  			found25zgensym_754b0115c175ee89_26[3] = true
  1248  			if nbs.AlwaysNil {
  1249  				if len(z.Structs) > 0 {
  1250  					for key, _ := range z.Structs {
  1251  						delete(z.Structs, key)
  1252  					}
  1253  				}
  1254  
  1255  			} else {
  1256  
  1257  				var zgensym_754b0115c175ee89_27 uint32
  1258  				zgensym_754b0115c175ee89_27, bts, err = nbs.ReadMapHeaderBytes(bts)
  1259  				if err != nil {
  1260  					return
  1261  				}
  1262  				if z.Structs == nil && zgensym_754b0115c175ee89_27 > 0 {
  1263  					z.Structs = make(map[string]*Struct, zgensym_754b0115c175ee89_27)
  1264  				} else if len(z.Structs) > 0 {
  1265  					for key, _ := range z.Structs {
  1266  						delete(z.Structs, key)
  1267  					}
  1268  				}
  1269  				for zgensym_754b0115c175ee89_27 > 0 {
  1270  					var zgensym_754b0115c175ee89_10 string
  1271  					var zgensym_754b0115c175ee89_11 *Struct
  1272  					zgensym_754b0115c175ee89_27--
  1273  					zgensym_754b0115c175ee89_10, bts, err = nbs.ReadStringBytes(bts)
  1274  					if err != nil {
  1275  						return
  1276  					}
  1277  					// default gPtr logic.
  1278  					if nbs.PeekNil(bts) && zgensym_754b0115c175ee89_11 == nil {
  1279  						// consume the nil
  1280  						bts, err = nbs.ReadNilBytes(bts)
  1281  						if err != nil {
  1282  							return
  1283  						}
  1284  					} else {
  1285  						// read as-if the wire has bytes, letting nbs take care of nils.
  1286  
  1287  						if zgensym_754b0115c175ee89_11 == nil {
  1288  							zgensym_754b0115c175ee89_11 = new(Struct)
  1289  						}
  1290  						const maxFields28zgensym_754b0115c175ee89_29 = 2
  1291  
  1292  						// -- templateUnmarshalMsg starts here--
  1293  						var totalEncodedFields28zgensym_754b0115c175ee89_29 uint32
  1294  						if !nbs.AlwaysNil {
  1295  							totalEncodedFields28zgensym_754b0115c175ee89_29, bts, err = nbs.ReadMapHeaderBytes(bts)
  1296  							if err != nil {
  1297  								return
  1298  							}
  1299  						}
  1300  						encodedFieldsLeft28zgensym_754b0115c175ee89_29 := totalEncodedFields28zgensym_754b0115c175ee89_29
  1301  						missingFieldsLeft28zgensym_754b0115c175ee89_29 := maxFields28zgensym_754b0115c175ee89_29 - totalEncodedFields28zgensym_754b0115c175ee89_29
  1302  
  1303  						var nextMiss28zgensym_754b0115c175ee89_29 int32 = -1
  1304  						var found28zgensym_754b0115c175ee89_29 [maxFields28zgensym_754b0115c175ee89_29]bool
  1305  						var curField28zgensym_754b0115c175ee89_29 string
  1306  
  1307  					doneWithStruct28zgensym_754b0115c175ee89_29:
  1308  						// First fill all the encoded fields, then
  1309  						// treat the remaining, missing fields, as Nil.
  1310  						for encodedFieldsLeft28zgensym_754b0115c175ee89_29 > 0 || missingFieldsLeft28zgensym_754b0115c175ee89_29 > 0 {
  1311  							//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft28zgensym_754b0115c175ee89_29, missingFieldsLeft28zgensym_754b0115c175ee89_29, msgp.ShowFound(found28zgensym_754b0115c175ee89_29[:]), unmarshalMsgFieldOrder28zgensym_754b0115c175ee89_29)
  1312  							if encodedFieldsLeft28zgensym_754b0115c175ee89_29 > 0 {
  1313  								encodedFieldsLeft28zgensym_754b0115c175ee89_29--
  1314  								field, bts, err = nbs.ReadMapKeyZC(bts)
  1315  								if err != nil {
  1316  									return
  1317  								}
  1318  								curField28zgensym_754b0115c175ee89_29 = msgp.UnsafeString(field)
  1319  							} else {
  1320  								//missing fields need handling
  1321  								if nextMiss28zgensym_754b0115c175ee89_29 < 0 {
  1322  									// set bts to contain just mnil (0xc0)
  1323  									bts = nbs.PushAlwaysNil(bts)
  1324  									nextMiss28zgensym_754b0115c175ee89_29 = 0
  1325  								}
  1326  								for nextMiss28zgensym_754b0115c175ee89_29 < maxFields28zgensym_754b0115c175ee89_29 && (found28zgensym_754b0115c175ee89_29[nextMiss28zgensym_754b0115c175ee89_29] || unmarshalMsgFieldSkip28zgensym_754b0115c175ee89_29[nextMiss28zgensym_754b0115c175ee89_29]) {
  1327  									nextMiss28zgensym_754b0115c175ee89_29++
  1328  								}
  1329  								if nextMiss28zgensym_754b0115c175ee89_29 == maxFields28zgensym_754b0115c175ee89_29 {
  1330  									// filled all the empty fields!
  1331  									break doneWithStruct28zgensym_754b0115c175ee89_29
  1332  								}
  1333  								missingFieldsLeft28zgensym_754b0115c175ee89_29--
  1334  								curField28zgensym_754b0115c175ee89_29 = unmarshalMsgFieldOrder28zgensym_754b0115c175ee89_29[nextMiss28zgensym_754b0115c175ee89_29]
  1335  							}
  1336  							//fmt.Printf("switching on curField: '%v'\n", curField28zgensym_754b0115c175ee89_29)
  1337  							switch curField28zgensym_754b0115c175ee89_29 {
  1338  							// -- templateUnmarshalMsg ends here --
  1339  
  1340  							case "StructName":
  1341  								found28zgensym_754b0115c175ee89_29[0] = true
  1342  								zgensym_754b0115c175ee89_11.StructName, bts, err = nbs.ReadStringBytes(bts)
  1343  
  1344  								if err != nil {
  1345  									return
  1346  								}
  1347  							case "Fields":
  1348  								found28zgensym_754b0115c175ee89_29[1] = true
  1349  								if nbs.AlwaysNil {
  1350  									(zgensym_754b0115c175ee89_11.Fields) = (zgensym_754b0115c175ee89_11.Fields)[:0]
  1351  								} else {
  1352  
  1353  									var zgensym_754b0115c175ee89_30 uint32
  1354  									zgensym_754b0115c175ee89_30, bts, err = nbs.ReadArrayHeaderBytes(bts)
  1355  									if err != nil {
  1356  										return
  1357  									}
  1358  									if cap(zgensym_754b0115c175ee89_11.Fields) >= int(zgensym_754b0115c175ee89_30) {
  1359  										zgensym_754b0115c175ee89_11.Fields = (zgensym_754b0115c175ee89_11.Fields)[:zgensym_754b0115c175ee89_30]
  1360  									} else {
  1361  										zgensym_754b0115c175ee89_11.Fields = make([]Field, zgensym_754b0115c175ee89_30)
  1362  									}
  1363  									for zgensym_754b0115c175ee89_12 := range zgensym_754b0115c175ee89_11.Fields {
  1364  										bts, err = zgensym_754b0115c175ee89_11.Fields[zgensym_754b0115c175ee89_12].UnmarshalMsg(bts)
  1365  										if err != nil {
  1366  											return
  1367  										}
  1368  										if err != nil {
  1369  											return
  1370  										}
  1371  									}
  1372  								}
  1373  							default:
  1374  								bts, err = msgp.Skip(bts)
  1375  								if err != nil {
  1376  									return
  1377  								}
  1378  							}
  1379  						}
  1380  						if nextMiss28zgensym_754b0115c175ee89_29 != -1 {
  1381  							bts = nbs.PopAlwaysNil()
  1382  						}
  1383  
  1384  					}
  1385  					z.Structs[zgensym_754b0115c175ee89_10] = zgensym_754b0115c175ee89_11
  1386  				}
  1387  			}
  1388  		case "Imports":
  1389  			found25zgensym_754b0115c175ee89_26[4] = true
  1390  			if nbs.AlwaysNil {
  1391  				(z.Imports) = (z.Imports)[:0]
  1392  			} else {
  1393  
  1394  				var zgensym_754b0115c175ee89_31 uint32
  1395  				zgensym_754b0115c175ee89_31, bts, err = nbs.ReadArrayHeaderBytes(bts)
  1396  				if err != nil {
  1397  					return
  1398  				}
  1399  				if cap(z.Imports) >= int(zgensym_754b0115c175ee89_31) {
  1400  					z.Imports = (z.Imports)[:zgensym_754b0115c175ee89_31]
  1401  				} else {
  1402  					z.Imports = make([]string, zgensym_754b0115c175ee89_31)
  1403  				}
  1404  				for zgensym_754b0115c175ee89_13 := range z.Imports {
  1405  					z.Imports[zgensym_754b0115c175ee89_13], bts, err = nbs.ReadStringBytes(bts)
  1406  
  1407  					if err != nil {
  1408  						return
  1409  					}
  1410  				}
  1411  			}
  1412  		default:
  1413  			bts, err = msgp.Skip(bts)
  1414  			if err != nil {
  1415  				return
  1416  			}
  1417  		}
  1418  	}
  1419  	if nextMiss25zgensym_754b0115c175ee89_26 != -1 {
  1420  		bts = nbs.PopAlwaysNil()
  1421  	}
  1422  
  1423  	if sawTopNil {
  1424  		bts = nbs.PopAlwaysNil()
  1425  	}
  1426  	o = bts
  1427  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
  1428  		p.PostLoadHook()
  1429  	}
  1430  
  1431  	return
  1432  }
  1433  
  1434  // fields of Schema
  1435  var unmarshalMsgFieldOrder25zgensym_754b0115c175ee89_26 = []string{"SourcePath", "SourcePackage", "ZebraSchemaId", "Structs", "Imports"}
  1436  
  1437  var unmarshalMsgFieldSkip25zgensym_754b0115c175ee89_26 = []bool{false, false, false, false, false}
  1438  
  1439  // fields of Struct
  1440  var unmarshalMsgFieldOrder28zgensym_754b0115c175ee89_29 = []string{"StructName", "Fields"}
  1441  
  1442  var unmarshalMsgFieldSkip28zgensym_754b0115c175ee89_29 = []bool{false, false}
  1443  
  1444  // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
  1445  func (z *Schema) Msgsize() (s int) {
  1446  	s = 1 + 11 + msgp.StringPrefixSize + len(z.SourcePath) + 14 + msgp.StringPrefixSize + len(z.SourcePackage) + 14 + msgp.Int64Size + 8 + msgp.MapHeaderSize
  1447  	if z.Structs != nil {
  1448  		for zgensym_754b0115c175ee89_10, zgensym_754b0115c175ee89_11 := range z.Structs {
  1449  			_ = zgensym_754b0115c175ee89_11
  1450  			_ = zgensym_754b0115c175ee89_10
  1451  			s += msgp.StringPrefixSize + len(zgensym_754b0115c175ee89_10)
  1452  			if zgensym_754b0115c175ee89_11 == nil {
  1453  				s += msgp.NilSize
  1454  			} else {
  1455  				s += 1 + 11 + msgp.StringPrefixSize + len(zgensym_754b0115c175ee89_11.StructName) + 7 + msgp.ArrayHeaderSize
  1456  				for zgensym_754b0115c175ee89_12 := range zgensym_754b0115c175ee89_11.Fields {
  1457  					s += zgensym_754b0115c175ee89_11.Fields[zgensym_754b0115c175ee89_12].Msgsize()
  1458  				}
  1459  			}
  1460  		}
  1461  	}
  1462  	s += 8 + msgp.ArrayHeaderSize
  1463  	for zgensym_754b0115c175ee89_13 := range z.Imports {
  1464  		s += msgp.StringPrefixSize + len(z.Imports[zgensym_754b0115c175ee89_13])
  1465  	}
  1466  	return
  1467  }
  1468  
  1469  // DecodeMsg implements msgp.Decodable
  1470  // We treat empty fields as if we read a Nil from the wire.
  1471  func (z *Struct) DecodeMsg(dc *msgp.Reader) (err error) {
  1472  	var sawTopNil bool
  1473  	if dc.IsNil() {
  1474  		sawTopNil = true
  1475  		err = dc.ReadNil()
  1476  		if err != nil {
  1477  			return
  1478  		}
  1479  		dc.PushAlwaysNil()
  1480  	}
  1481  
  1482  	var field []byte
  1483  	_ = field
  1484  	const maxFields33zgensym_754b0115c175ee89_34 = 2
  1485  
  1486  	// -- templateDecodeMsg starts here--
  1487  	var totalEncodedFields33zgensym_754b0115c175ee89_34 uint32
  1488  	totalEncodedFields33zgensym_754b0115c175ee89_34, err = dc.ReadMapHeader()
  1489  	if err != nil {
  1490  		return
  1491  	}
  1492  	encodedFieldsLeft33zgensym_754b0115c175ee89_34 := totalEncodedFields33zgensym_754b0115c175ee89_34
  1493  	missingFieldsLeft33zgensym_754b0115c175ee89_34 := maxFields33zgensym_754b0115c175ee89_34 - totalEncodedFields33zgensym_754b0115c175ee89_34
  1494  
  1495  	var nextMiss33zgensym_754b0115c175ee89_34 int32 = -1
  1496  	var found33zgensym_754b0115c175ee89_34 [maxFields33zgensym_754b0115c175ee89_34]bool
  1497  	var curField33zgensym_754b0115c175ee89_34 string
  1498  
  1499  doneWithStruct33zgensym_754b0115c175ee89_34:
  1500  	// First fill all the encoded fields, then
  1501  	// treat the remaining, missing fields, as Nil.
  1502  	for encodedFieldsLeft33zgensym_754b0115c175ee89_34 > 0 || missingFieldsLeft33zgensym_754b0115c175ee89_34 > 0 {
  1503  		//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft33zgensym_754b0115c175ee89_34, missingFieldsLeft33zgensym_754b0115c175ee89_34, msgp.ShowFound(found33zgensym_754b0115c175ee89_34[:]), decodeMsgFieldOrder33zgensym_754b0115c175ee89_34)
  1504  		if encodedFieldsLeft33zgensym_754b0115c175ee89_34 > 0 {
  1505  			encodedFieldsLeft33zgensym_754b0115c175ee89_34--
  1506  			field, err = dc.ReadMapKeyPtr()
  1507  			if err != nil {
  1508  				return
  1509  			}
  1510  			curField33zgensym_754b0115c175ee89_34 = msgp.UnsafeString(field)
  1511  		} else {
  1512  			//missing fields need handling
  1513  			if nextMiss33zgensym_754b0115c175ee89_34 < 0 {
  1514  				// tell the reader to only give us Nils
  1515  				// until further notice.
  1516  				dc.PushAlwaysNil()
  1517  				nextMiss33zgensym_754b0115c175ee89_34 = 0
  1518  			}
  1519  			for nextMiss33zgensym_754b0115c175ee89_34 < maxFields33zgensym_754b0115c175ee89_34 && (found33zgensym_754b0115c175ee89_34[nextMiss33zgensym_754b0115c175ee89_34] || decodeMsgFieldSkip33zgensym_754b0115c175ee89_34[nextMiss33zgensym_754b0115c175ee89_34]) {
  1520  				nextMiss33zgensym_754b0115c175ee89_34++
  1521  			}
  1522  			if nextMiss33zgensym_754b0115c175ee89_34 == maxFields33zgensym_754b0115c175ee89_34 {
  1523  				// filled all the empty fields!
  1524  				break doneWithStruct33zgensym_754b0115c175ee89_34
  1525  			}
  1526  			missingFieldsLeft33zgensym_754b0115c175ee89_34--
  1527  			curField33zgensym_754b0115c175ee89_34 = decodeMsgFieldOrder33zgensym_754b0115c175ee89_34[nextMiss33zgensym_754b0115c175ee89_34]
  1528  		}
  1529  		//fmt.Printf("switching on curField: '%v'\n", curField33zgensym_754b0115c175ee89_34)
  1530  		switch curField33zgensym_754b0115c175ee89_34 {
  1531  		// -- templateDecodeMsg ends here --
  1532  
  1533  		case "StructName":
  1534  			found33zgensym_754b0115c175ee89_34[0] = true
  1535  			z.StructName, err = dc.ReadString()
  1536  			if err != nil {
  1537  				return
  1538  			}
  1539  		case "Fields":
  1540  			found33zgensym_754b0115c175ee89_34[1] = true
  1541  			var zgensym_754b0115c175ee89_35 uint32
  1542  			zgensym_754b0115c175ee89_35, err = dc.ReadArrayHeader()
  1543  			if err != nil {
  1544  				return
  1545  			}
  1546  			if cap(z.Fields) >= int(zgensym_754b0115c175ee89_35) {
  1547  				z.Fields = (z.Fields)[:zgensym_754b0115c175ee89_35]
  1548  			} else {
  1549  				z.Fields = make([]Field, zgensym_754b0115c175ee89_35)
  1550  			}
  1551  			for zgensym_754b0115c175ee89_32 := range z.Fields {
  1552  				err = z.Fields[zgensym_754b0115c175ee89_32].DecodeMsg(dc)
  1553  				if err != nil {
  1554  					return
  1555  				}
  1556  			}
  1557  		default:
  1558  			err = dc.Skip()
  1559  			if err != nil {
  1560  				return
  1561  			}
  1562  		}
  1563  	}
  1564  	if nextMiss33zgensym_754b0115c175ee89_34 != -1 {
  1565  		dc.PopAlwaysNil()
  1566  	}
  1567  
  1568  	if sawTopNil {
  1569  		dc.PopAlwaysNil()
  1570  	}
  1571  
  1572  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
  1573  		p.PostLoadHook()
  1574  	}
  1575  
  1576  	return
  1577  }
  1578  
  1579  // fields of Struct
  1580  var decodeMsgFieldOrder33zgensym_754b0115c175ee89_34 = []string{"StructName", "Fields"}
  1581  
  1582  var decodeMsgFieldSkip33zgensym_754b0115c175ee89_34 = []bool{false, false}
  1583  
  1584  // fieldsNotEmpty supports omitempty tags
  1585  func (z *Struct) fieldsNotEmpty(isempty []bool) uint32 {
  1586  	if len(isempty) == 0 {
  1587  		return 2
  1588  	}
  1589  	var fieldsInUse uint32 = 2
  1590  	isempty[0] = (len(z.StructName) == 0) // string, omitempty
  1591  	if isempty[0] {
  1592  		fieldsInUse--
  1593  	}
  1594  	isempty[1] = (len(z.Fields) == 0) // string, omitempty
  1595  	if isempty[1] {
  1596  		fieldsInUse--
  1597  	}
  1598  
  1599  	return fieldsInUse
  1600  }
  1601  
  1602  // EncodeMsg implements msgp.Encodable
  1603  func (z *Struct) EncodeMsg(en *msgp.Writer) (err error) {
  1604  	if p, ok := interface{}(z).(msgp.PreSave); ok {
  1605  		p.PreSaveHook()
  1606  	}
  1607  
  1608  	// honor the omitempty tags
  1609  	var empty_zgensym_754b0115c175ee89_36 [2]bool
  1610  	fieldsInUse_zgensym_754b0115c175ee89_37 := z.fieldsNotEmpty(empty_zgensym_754b0115c175ee89_36[:])
  1611  
  1612  	// map header
  1613  	err = en.WriteMapHeader(fieldsInUse_zgensym_754b0115c175ee89_37)
  1614  	if err != nil {
  1615  		return err
  1616  	}
  1617  
  1618  	if !empty_zgensym_754b0115c175ee89_36[0] {
  1619  		// write "StructName"
  1620  		err = en.Append(0xaa, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65)
  1621  		if err != nil {
  1622  			return err
  1623  		}
  1624  		err = en.WriteString(z.StructName)
  1625  		if err != nil {
  1626  			return
  1627  		}
  1628  	}
  1629  
  1630  	if !empty_zgensym_754b0115c175ee89_36[1] {
  1631  		// write "Fields"
  1632  		err = en.Append(0xa6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73)
  1633  		if err != nil {
  1634  			return err
  1635  		}
  1636  		err = en.WriteArrayHeader(uint32(len(z.Fields)))
  1637  		if err != nil {
  1638  			return
  1639  		}
  1640  		for zgensym_754b0115c175ee89_32 := range z.Fields {
  1641  			err = z.Fields[zgensym_754b0115c175ee89_32].EncodeMsg(en)
  1642  			if err != nil {
  1643  				return
  1644  			}
  1645  		}
  1646  	}
  1647  
  1648  	return
  1649  }
  1650  
  1651  // MarshalMsg implements msgp.Marshaler
  1652  func (z *Struct) MarshalMsg(b []byte) (o []byte, err error) {
  1653  	if p, ok := interface{}(z).(msgp.PreSave); ok {
  1654  		p.PreSaveHook()
  1655  	}
  1656  
  1657  	o = msgp.Require(b, z.Msgsize())
  1658  
  1659  	// honor the omitempty tags
  1660  	var empty [2]bool
  1661  	fieldsInUse := z.fieldsNotEmpty(empty[:])
  1662  	o = msgp.AppendMapHeader(o, fieldsInUse)
  1663  
  1664  	if !empty[0] {
  1665  		// string "StructName"
  1666  		o = append(o, 0xaa, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65)
  1667  		o = msgp.AppendString(o, z.StructName)
  1668  	}
  1669  
  1670  	if !empty[1] {
  1671  		// string "Fields"
  1672  		o = append(o, 0xa6, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73)
  1673  		o = msgp.AppendArrayHeader(o, uint32(len(z.Fields)))
  1674  		for zgensym_754b0115c175ee89_32 := range z.Fields {
  1675  			o, err = z.Fields[zgensym_754b0115c175ee89_32].MarshalMsg(o)
  1676  			if err != nil {
  1677  				return
  1678  			}
  1679  		}
  1680  	}
  1681  
  1682  	return
  1683  }
  1684  
  1685  // UnmarshalMsg implements msgp.Unmarshaler
  1686  func (z *Struct) UnmarshalMsg(bts []byte) (o []byte, err error) {
  1687  	return z.UnmarshalMsgWithCfg(bts, nil)
  1688  }
  1689  func (z *Struct) UnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) {
  1690  	var nbs msgp.NilBitsStack
  1691  	nbs.Init(cfg)
  1692  	var sawTopNil bool
  1693  	if msgp.IsNil(bts) {
  1694  		sawTopNil = true
  1695  		bts = nbs.PushAlwaysNil(bts[1:])
  1696  	}
  1697  
  1698  	var field []byte
  1699  	_ = field
  1700  	const maxFields38zgensym_754b0115c175ee89_39 = 2
  1701  
  1702  	// -- templateUnmarshalMsg starts here--
  1703  	var totalEncodedFields38zgensym_754b0115c175ee89_39 uint32
  1704  	if !nbs.AlwaysNil {
  1705  		totalEncodedFields38zgensym_754b0115c175ee89_39, bts, err = nbs.ReadMapHeaderBytes(bts)
  1706  		if err != nil {
  1707  			return
  1708  		}
  1709  	}
  1710  	encodedFieldsLeft38zgensym_754b0115c175ee89_39 := totalEncodedFields38zgensym_754b0115c175ee89_39
  1711  	missingFieldsLeft38zgensym_754b0115c175ee89_39 := maxFields38zgensym_754b0115c175ee89_39 - totalEncodedFields38zgensym_754b0115c175ee89_39
  1712  
  1713  	var nextMiss38zgensym_754b0115c175ee89_39 int32 = -1
  1714  	var found38zgensym_754b0115c175ee89_39 [maxFields38zgensym_754b0115c175ee89_39]bool
  1715  	var curField38zgensym_754b0115c175ee89_39 string
  1716  
  1717  doneWithStruct38zgensym_754b0115c175ee89_39:
  1718  	// First fill all the encoded fields, then
  1719  	// treat the remaining, missing fields, as Nil.
  1720  	for encodedFieldsLeft38zgensym_754b0115c175ee89_39 > 0 || missingFieldsLeft38zgensym_754b0115c175ee89_39 > 0 {
  1721  		//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft38zgensym_754b0115c175ee89_39, missingFieldsLeft38zgensym_754b0115c175ee89_39, msgp.ShowFound(found38zgensym_754b0115c175ee89_39[:]), unmarshalMsgFieldOrder38zgensym_754b0115c175ee89_39)
  1722  		if encodedFieldsLeft38zgensym_754b0115c175ee89_39 > 0 {
  1723  			encodedFieldsLeft38zgensym_754b0115c175ee89_39--
  1724  			field, bts, err = nbs.ReadMapKeyZC(bts)
  1725  			if err != nil {
  1726  				return
  1727  			}
  1728  			curField38zgensym_754b0115c175ee89_39 = msgp.UnsafeString(field)
  1729  		} else {
  1730  			//missing fields need handling
  1731  			if nextMiss38zgensym_754b0115c175ee89_39 < 0 {
  1732  				// set bts to contain just mnil (0xc0)
  1733  				bts = nbs.PushAlwaysNil(bts)
  1734  				nextMiss38zgensym_754b0115c175ee89_39 = 0
  1735  			}
  1736  			for nextMiss38zgensym_754b0115c175ee89_39 < maxFields38zgensym_754b0115c175ee89_39 && (found38zgensym_754b0115c175ee89_39[nextMiss38zgensym_754b0115c175ee89_39] || unmarshalMsgFieldSkip38zgensym_754b0115c175ee89_39[nextMiss38zgensym_754b0115c175ee89_39]) {
  1737  				nextMiss38zgensym_754b0115c175ee89_39++
  1738  			}
  1739  			if nextMiss38zgensym_754b0115c175ee89_39 == maxFields38zgensym_754b0115c175ee89_39 {
  1740  				// filled all the empty fields!
  1741  				break doneWithStruct38zgensym_754b0115c175ee89_39
  1742  			}
  1743  			missingFieldsLeft38zgensym_754b0115c175ee89_39--
  1744  			curField38zgensym_754b0115c175ee89_39 = unmarshalMsgFieldOrder38zgensym_754b0115c175ee89_39[nextMiss38zgensym_754b0115c175ee89_39]
  1745  		}
  1746  		//fmt.Printf("switching on curField: '%v'\n", curField38zgensym_754b0115c175ee89_39)
  1747  		switch curField38zgensym_754b0115c175ee89_39 {
  1748  		// -- templateUnmarshalMsg ends here --
  1749  
  1750  		case "StructName":
  1751  			found38zgensym_754b0115c175ee89_39[0] = true
  1752  			z.StructName, bts, err = nbs.ReadStringBytes(bts)
  1753  
  1754  			if err != nil {
  1755  				return
  1756  			}
  1757  		case "Fields":
  1758  			found38zgensym_754b0115c175ee89_39[1] = true
  1759  			if nbs.AlwaysNil {
  1760  				(z.Fields) = (z.Fields)[:0]
  1761  			} else {
  1762  
  1763  				var zgensym_754b0115c175ee89_40 uint32
  1764  				zgensym_754b0115c175ee89_40, bts, err = nbs.ReadArrayHeaderBytes(bts)
  1765  				if err != nil {
  1766  					return
  1767  				}
  1768  				if cap(z.Fields) >= int(zgensym_754b0115c175ee89_40) {
  1769  					z.Fields = (z.Fields)[:zgensym_754b0115c175ee89_40]
  1770  				} else {
  1771  					z.Fields = make([]Field, zgensym_754b0115c175ee89_40)
  1772  				}
  1773  				for zgensym_754b0115c175ee89_32 := range z.Fields {
  1774  					bts, err = z.Fields[zgensym_754b0115c175ee89_32].UnmarshalMsg(bts)
  1775  					if err != nil {
  1776  						return
  1777  					}
  1778  					if err != nil {
  1779  						return
  1780  					}
  1781  				}
  1782  			}
  1783  		default:
  1784  			bts, err = msgp.Skip(bts)
  1785  			if err != nil {
  1786  				return
  1787  			}
  1788  		}
  1789  	}
  1790  	if nextMiss38zgensym_754b0115c175ee89_39 != -1 {
  1791  		bts = nbs.PopAlwaysNil()
  1792  	}
  1793  
  1794  	if sawTopNil {
  1795  		bts = nbs.PopAlwaysNil()
  1796  	}
  1797  	o = bts
  1798  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
  1799  		p.PostLoadHook()
  1800  	}
  1801  
  1802  	return
  1803  }
  1804  
  1805  // fields of Struct
  1806  var unmarshalMsgFieldOrder38zgensym_754b0115c175ee89_39 = []string{"StructName", "Fields"}
  1807  
  1808  var unmarshalMsgFieldSkip38zgensym_754b0115c175ee89_39 = []bool{false, false}
  1809  
  1810  // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
  1811  func (z *Struct) Msgsize() (s int) {
  1812  	s = 1 + 11 + msgp.StringPrefixSize + len(z.StructName) + 7 + msgp.ArrayHeaderSize
  1813  	for zgensym_754b0115c175ee89_32 := range z.Fields {
  1814  		s += z.Fields[zgensym_754b0115c175ee89_32].Msgsize()
  1815  	}
  1816  	return
  1817  }
  1818  
  1819  // DecodeMsg implements msgp.Decodable
  1820  // We treat empty fields as if we read a Nil from the wire.
  1821  func (z *Zkind) DecodeMsg(dc *msgp.Reader) (err error) {
  1822  	var sawTopNil bool
  1823  	if dc.IsNil() {
  1824  		sawTopNil = true
  1825  		err = dc.ReadNil()
  1826  		if err != nil {
  1827  			return
  1828  		}
  1829  		dc.PushAlwaysNil()
  1830  	}
  1831  
  1832  	{
  1833  		var zgensym_754b0115c175ee89_41 uint64
  1834  		zgensym_754b0115c175ee89_41, err = dc.ReadUint64()
  1835  		(*z) = Zkind(zgensym_754b0115c175ee89_41)
  1836  	}
  1837  	if err != nil {
  1838  		return
  1839  	}
  1840  	if sawTopNil {
  1841  		dc.PopAlwaysNil()
  1842  	}
  1843  
  1844  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
  1845  		p.PostLoadHook()
  1846  	}
  1847  
  1848  	return
  1849  }
  1850  
  1851  // EncodeMsg implements msgp.Encodable
  1852  func (z Zkind) EncodeMsg(en *msgp.Writer) (err error) {
  1853  	if p, ok := interface{}(z).(msgp.PreSave); ok {
  1854  		p.PreSaveHook()
  1855  	}
  1856  
  1857  	err = en.WriteUint64(uint64(z))
  1858  	if err != nil {
  1859  		return
  1860  	}
  1861  	return
  1862  }
  1863  
  1864  // MarshalMsg implements msgp.Marshaler
  1865  func (z Zkind) MarshalMsg(b []byte) (o []byte, err error) {
  1866  	if p, ok := interface{}(z).(msgp.PreSave); ok {
  1867  		p.PreSaveHook()
  1868  	}
  1869  
  1870  	o = msgp.Require(b, z.Msgsize())
  1871  	o = msgp.AppendUint64(o, uint64(z))
  1872  	return
  1873  }
  1874  
  1875  // UnmarshalMsg implements msgp.Unmarshaler
  1876  func (z *Zkind) UnmarshalMsg(bts []byte) (o []byte, err error) {
  1877  	return z.UnmarshalMsgWithCfg(bts, nil)
  1878  }
  1879  func (z *Zkind) UnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) {
  1880  	var nbs msgp.NilBitsStack
  1881  	nbs.Init(cfg)
  1882  	var sawTopNil bool
  1883  	if msgp.IsNil(bts) {
  1884  		sawTopNil = true
  1885  		bts = nbs.PushAlwaysNil(bts[1:])
  1886  	}
  1887  
  1888  	{
  1889  		var zgensym_754b0115c175ee89_42 uint64
  1890  		zgensym_754b0115c175ee89_42, bts, err = nbs.ReadUint64Bytes(bts)
  1891  
  1892  		if err != nil {
  1893  			return
  1894  		}
  1895  		(*z) = Zkind(zgensym_754b0115c175ee89_42)
  1896  	}
  1897  	if sawTopNil {
  1898  		bts = nbs.PopAlwaysNil()
  1899  	}
  1900  	o = bts
  1901  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
  1902  		p.PostLoadHook()
  1903  	}
  1904  
  1905  	return
  1906  }
  1907  
  1908  // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
  1909  func (z Zkind) Msgsize() (s int) {
  1910  	s = msgp.Uint64Size
  1911  	return
  1912  }
  1913  
  1914  // DecodeMsg implements msgp.Decodable
  1915  // We treat empty fields as if we read a Nil from the wire.
  1916  func (z *Ztype) DecodeMsg(dc *msgp.Reader) (err error) {
  1917  	var sawTopNil bool
  1918  	if dc.IsNil() {
  1919  		sawTopNil = true
  1920  		err = dc.ReadNil()
  1921  		if err != nil {
  1922  			return
  1923  		}
  1924  		dc.PushAlwaysNil()
  1925  	}
  1926  
  1927  	var field []byte
  1928  	_ = field
  1929  	const maxFields43zgensym_754b0115c175ee89_44 = 4
  1930  
  1931  	// -- templateDecodeMsg starts here--
  1932  	var totalEncodedFields43zgensym_754b0115c175ee89_44 uint32
  1933  	totalEncodedFields43zgensym_754b0115c175ee89_44, err = dc.ReadMapHeader()
  1934  	if err != nil {
  1935  		return
  1936  	}
  1937  	encodedFieldsLeft43zgensym_754b0115c175ee89_44 := totalEncodedFields43zgensym_754b0115c175ee89_44
  1938  	missingFieldsLeft43zgensym_754b0115c175ee89_44 := maxFields43zgensym_754b0115c175ee89_44 - totalEncodedFields43zgensym_754b0115c175ee89_44
  1939  
  1940  	var nextMiss43zgensym_754b0115c175ee89_44 int32 = -1
  1941  	var found43zgensym_754b0115c175ee89_44 [maxFields43zgensym_754b0115c175ee89_44]bool
  1942  	var curField43zgensym_754b0115c175ee89_44 string
  1943  
  1944  doneWithStruct43zgensym_754b0115c175ee89_44:
  1945  	// First fill all the encoded fields, then
  1946  	// treat the remaining, missing fields, as Nil.
  1947  	for encodedFieldsLeft43zgensym_754b0115c175ee89_44 > 0 || missingFieldsLeft43zgensym_754b0115c175ee89_44 > 0 {
  1948  		//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft43zgensym_754b0115c175ee89_44, missingFieldsLeft43zgensym_754b0115c175ee89_44, msgp.ShowFound(found43zgensym_754b0115c175ee89_44[:]), decodeMsgFieldOrder43zgensym_754b0115c175ee89_44)
  1949  		if encodedFieldsLeft43zgensym_754b0115c175ee89_44 > 0 {
  1950  			encodedFieldsLeft43zgensym_754b0115c175ee89_44--
  1951  			field, err = dc.ReadMapKeyPtr()
  1952  			if err != nil {
  1953  				return
  1954  			}
  1955  			curField43zgensym_754b0115c175ee89_44 = msgp.UnsafeString(field)
  1956  		} else {
  1957  			//missing fields need handling
  1958  			if nextMiss43zgensym_754b0115c175ee89_44 < 0 {
  1959  				// tell the reader to only give us Nils
  1960  				// until further notice.
  1961  				dc.PushAlwaysNil()
  1962  				nextMiss43zgensym_754b0115c175ee89_44 = 0
  1963  			}
  1964  			for nextMiss43zgensym_754b0115c175ee89_44 < maxFields43zgensym_754b0115c175ee89_44 && (found43zgensym_754b0115c175ee89_44[nextMiss43zgensym_754b0115c175ee89_44] || decodeMsgFieldSkip43zgensym_754b0115c175ee89_44[nextMiss43zgensym_754b0115c175ee89_44]) {
  1965  				nextMiss43zgensym_754b0115c175ee89_44++
  1966  			}
  1967  			if nextMiss43zgensym_754b0115c175ee89_44 == maxFields43zgensym_754b0115c175ee89_44 {
  1968  				// filled all the empty fields!
  1969  				break doneWithStruct43zgensym_754b0115c175ee89_44
  1970  			}
  1971  			missingFieldsLeft43zgensym_754b0115c175ee89_44--
  1972  			curField43zgensym_754b0115c175ee89_44 = decodeMsgFieldOrder43zgensym_754b0115c175ee89_44[nextMiss43zgensym_754b0115c175ee89_44]
  1973  		}
  1974  		//fmt.Printf("switching on curField: '%v'\n", curField43zgensym_754b0115c175ee89_44)
  1975  		switch curField43zgensym_754b0115c175ee89_44 {
  1976  		// -- templateDecodeMsg ends here --
  1977  
  1978  		case "Kind":
  1979  			found43zgensym_754b0115c175ee89_44[0] = true
  1980  			{
  1981  				var zgensym_754b0115c175ee89_45 uint64
  1982  				zgensym_754b0115c175ee89_45, err = dc.ReadUint64()
  1983  				z.Kind = Zkind(zgensym_754b0115c175ee89_45)
  1984  			}
  1985  			if err != nil {
  1986  				return
  1987  			}
  1988  		case "Str":
  1989  			found43zgensym_754b0115c175ee89_44[1] = true
  1990  			z.Str, err = dc.ReadString()
  1991  			if err != nil {
  1992  				return
  1993  			}
  1994  		case "Domain":
  1995  			found43zgensym_754b0115c175ee89_44[2] = true
  1996  			if dc.IsNil() {
  1997  				err = dc.ReadNil()
  1998  				if err != nil {
  1999  					return
  2000  				}
  2001  
  2002  				if z.Domain != nil {
  2003  					dc.PushAlwaysNil()
  2004  					err = z.Domain.DecodeMsg(dc)
  2005  					if err != nil {
  2006  						return
  2007  					}
  2008  					dc.PopAlwaysNil()
  2009  				}
  2010  			} else {
  2011  				// not Nil, we have something to read
  2012  
  2013  				if z.Domain == nil {
  2014  					z.Domain = new(Ztype)
  2015  				}
  2016  				err = z.Domain.DecodeMsg(dc)
  2017  				if err != nil {
  2018  					return
  2019  				}
  2020  			}
  2021  		case "Range":
  2022  			found43zgensym_754b0115c175ee89_44[3] = true
  2023  			if dc.IsNil() {
  2024  				err = dc.ReadNil()
  2025  				if err != nil {
  2026  					return
  2027  				}
  2028  
  2029  				if z.Range != nil {
  2030  					dc.PushAlwaysNil()
  2031  					err = z.Range.DecodeMsg(dc)
  2032  					if err != nil {
  2033  						return
  2034  					}
  2035  					dc.PopAlwaysNil()
  2036  				}
  2037  			} else {
  2038  				// not Nil, we have something to read
  2039  
  2040  				if z.Range == nil {
  2041  					z.Range = new(Ztype)
  2042  				}
  2043  				err = z.Range.DecodeMsg(dc)
  2044  				if err != nil {
  2045  					return
  2046  				}
  2047  			}
  2048  		default:
  2049  			err = dc.Skip()
  2050  			if err != nil {
  2051  				return
  2052  			}
  2053  		}
  2054  	}
  2055  	if nextMiss43zgensym_754b0115c175ee89_44 != -1 {
  2056  		dc.PopAlwaysNil()
  2057  	}
  2058  
  2059  	if sawTopNil {
  2060  		dc.PopAlwaysNil()
  2061  	}
  2062  
  2063  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
  2064  		p.PostLoadHook()
  2065  	}
  2066  
  2067  	return
  2068  }
  2069  
  2070  // fields of Ztype
  2071  var decodeMsgFieldOrder43zgensym_754b0115c175ee89_44 = []string{"Kind", "Str", "Domain", "Range"}
  2072  
  2073  var decodeMsgFieldSkip43zgensym_754b0115c175ee89_44 = []bool{false, false, false, false}
  2074  
  2075  // fieldsNotEmpty supports omitempty tags
  2076  func (z *Ztype) fieldsNotEmpty(isempty []bool) uint32 {
  2077  	if len(isempty) == 0 {
  2078  		return 4
  2079  	}
  2080  	var fieldsInUse uint32 = 4
  2081  	isempty[1] = (len(z.Str) == 0) // string, omitempty
  2082  	if isempty[1] {
  2083  		fieldsInUse--
  2084  	}
  2085  	isempty[2] = (z.Domain == nil) // pointer, omitempty
  2086  	if isempty[2] {
  2087  		fieldsInUse--
  2088  	}
  2089  	isempty[3] = (z.Range == nil) // pointer, omitempty
  2090  	if isempty[3] {
  2091  		fieldsInUse--
  2092  	}
  2093  
  2094  	return fieldsInUse
  2095  }
  2096  
  2097  // EncodeMsg implements msgp.Encodable
  2098  func (z *Ztype) EncodeMsg(en *msgp.Writer) (err error) {
  2099  	if p, ok := interface{}(z).(msgp.PreSave); ok {
  2100  		p.PreSaveHook()
  2101  	}
  2102  
  2103  	// honor the omitempty tags
  2104  	var empty_zgensym_754b0115c175ee89_46 [4]bool
  2105  	fieldsInUse_zgensym_754b0115c175ee89_47 := z.fieldsNotEmpty(empty_zgensym_754b0115c175ee89_46[:])
  2106  
  2107  	// map header
  2108  	err = en.WriteMapHeader(fieldsInUse_zgensym_754b0115c175ee89_47)
  2109  	if err != nil {
  2110  		return err
  2111  	}
  2112  
  2113  	// write "Kind"
  2114  	err = en.Append(0xa4, 0x4b, 0x69, 0x6e, 0x64)
  2115  	if err != nil {
  2116  		return err
  2117  	}
  2118  	err = en.WriteUint64(uint64(z.Kind))
  2119  	if err != nil {
  2120  		return
  2121  	}
  2122  	if !empty_zgensym_754b0115c175ee89_46[1] {
  2123  		// write "Str"
  2124  		err = en.Append(0xa3, 0x53, 0x74, 0x72)
  2125  		if err != nil {
  2126  			return err
  2127  		}
  2128  		err = en.WriteString(z.Str)
  2129  		if err != nil {
  2130  			return
  2131  		}
  2132  	}
  2133  
  2134  	if !empty_zgensym_754b0115c175ee89_46[2] {
  2135  		// write "Domain"
  2136  		err = en.Append(0xa6, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e)
  2137  		if err != nil {
  2138  			return err
  2139  		}
  2140  		if z.Domain == nil {
  2141  			err = en.WriteNil()
  2142  			if err != nil {
  2143  				return
  2144  			}
  2145  		} else {
  2146  			err = z.Domain.EncodeMsg(en)
  2147  			if err != nil {
  2148  				return
  2149  			}
  2150  		}
  2151  	}
  2152  
  2153  	if !empty_zgensym_754b0115c175ee89_46[3] {
  2154  		// write "Range"
  2155  		err = en.Append(0xa5, 0x52, 0x61, 0x6e, 0x67, 0x65)
  2156  		if err != nil {
  2157  			return err
  2158  		}
  2159  		if z.Range == nil {
  2160  			err = en.WriteNil()
  2161  			if err != nil {
  2162  				return
  2163  			}
  2164  		} else {
  2165  			err = z.Range.EncodeMsg(en)
  2166  			if err != nil {
  2167  				return
  2168  			}
  2169  		}
  2170  	}
  2171  
  2172  	return
  2173  }
  2174  
  2175  // MarshalMsg implements msgp.Marshaler
  2176  func (z *Ztype) MarshalMsg(b []byte) (o []byte, err error) {
  2177  	if p, ok := interface{}(z).(msgp.PreSave); ok {
  2178  		p.PreSaveHook()
  2179  	}
  2180  
  2181  	o = msgp.Require(b, z.Msgsize())
  2182  
  2183  	// honor the omitempty tags
  2184  	var empty [4]bool
  2185  	fieldsInUse := z.fieldsNotEmpty(empty[:])
  2186  	o = msgp.AppendMapHeader(o, fieldsInUse)
  2187  
  2188  	// string "Kind"
  2189  	o = append(o, 0xa4, 0x4b, 0x69, 0x6e, 0x64)
  2190  	o = msgp.AppendUint64(o, uint64(z.Kind))
  2191  	if !empty[1] {
  2192  		// string "Str"
  2193  		o = append(o, 0xa3, 0x53, 0x74, 0x72)
  2194  		o = msgp.AppendString(o, z.Str)
  2195  	}
  2196  
  2197  	if !empty[2] {
  2198  		// string "Domain"
  2199  		o = append(o, 0xa6, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e)
  2200  		if z.Domain == nil {
  2201  			o = msgp.AppendNil(o)
  2202  		} else {
  2203  			o, err = z.Domain.MarshalMsg(o)
  2204  			if err != nil {
  2205  				return
  2206  			}
  2207  		}
  2208  	}
  2209  
  2210  	if !empty[3] {
  2211  		// string "Range"
  2212  		o = append(o, 0xa5, 0x52, 0x61, 0x6e, 0x67, 0x65)
  2213  		if z.Range == nil {
  2214  			o = msgp.AppendNil(o)
  2215  		} else {
  2216  			o, err = z.Range.MarshalMsg(o)
  2217  			if err != nil {
  2218  				return
  2219  			}
  2220  		}
  2221  	}
  2222  
  2223  	return
  2224  }
  2225  
  2226  // UnmarshalMsg implements msgp.Unmarshaler
  2227  func (z *Ztype) UnmarshalMsg(bts []byte) (o []byte, err error) {
  2228  	return z.UnmarshalMsgWithCfg(bts, nil)
  2229  }
  2230  func (z *Ztype) UnmarshalMsgWithCfg(bts []byte, cfg *msgp.RuntimeConfig) (o []byte, err error) {
  2231  	var nbs msgp.NilBitsStack
  2232  	nbs.Init(cfg)
  2233  	var sawTopNil bool
  2234  	if msgp.IsNil(bts) {
  2235  		sawTopNil = true
  2236  		bts = nbs.PushAlwaysNil(bts[1:])
  2237  	}
  2238  
  2239  	var field []byte
  2240  	_ = field
  2241  	const maxFields48zgensym_754b0115c175ee89_49 = 4
  2242  
  2243  	// -- templateUnmarshalMsg starts here--
  2244  	var totalEncodedFields48zgensym_754b0115c175ee89_49 uint32
  2245  	if !nbs.AlwaysNil {
  2246  		totalEncodedFields48zgensym_754b0115c175ee89_49, bts, err = nbs.ReadMapHeaderBytes(bts)
  2247  		if err != nil {
  2248  			return
  2249  		}
  2250  	}
  2251  	encodedFieldsLeft48zgensym_754b0115c175ee89_49 := totalEncodedFields48zgensym_754b0115c175ee89_49
  2252  	missingFieldsLeft48zgensym_754b0115c175ee89_49 := maxFields48zgensym_754b0115c175ee89_49 - totalEncodedFields48zgensym_754b0115c175ee89_49
  2253  
  2254  	var nextMiss48zgensym_754b0115c175ee89_49 int32 = -1
  2255  	var found48zgensym_754b0115c175ee89_49 [maxFields48zgensym_754b0115c175ee89_49]bool
  2256  	var curField48zgensym_754b0115c175ee89_49 string
  2257  
  2258  doneWithStruct48zgensym_754b0115c175ee89_49:
  2259  	// First fill all the encoded fields, then
  2260  	// treat the remaining, missing fields, as Nil.
  2261  	for encodedFieldsLeft48zgensym_754b0115c175ee89_49 > 0 || missingFieldsLeft48zgensym_754b0115c175ee89_49 > 0 {
  2262  		//fmt.Printf("encodedFieldsLeft: %v, missingFieldsLeft: %v, found: '%v', fields: '%#v'\n", encodedFieldsLeft48zgensym_754b0115c175ee89_49, missingFieldsLeft48zgensym_754b0115c175ee89_49, msgp.ShowFound(found48zgensym_754b0115c175ee89_49[:]), unmarshalMsgFieldOrder48zgensym_754b0115c175ee89_49)
  2263  		if encodedFieldsLeft48zgensym_754b0115c175ee89_49 > 0 {
  2264  			encodedFieldsLeft48zgensym_754b0115c175ee89_49--
  2265  			field, bts, err = nbs.ReadMapKeyZC(bts)
  2266  			if err != nil {
  2267  				return
  2268  			}
  2269  			curField48zgensym_754b0115c175ee89_49 = msgp.UnsafeString(field)
  2270  		} else {
  2271  			//missing fields need handling
  2272  			if nextMiss48zgensym_754b0115c175ee89_49 < 0 {
  2273  				// set bts to contain just mnil (0xc0)
  2274  				bts = nbs.PushAlwaysNil(bts)
  2275  				nextMiss48zgensym_754b0115c175ee89_49 = 0
  2276  			}
  2277  			for nextMiss48zgensym_754b0115c175ee89_49 < maxFields48zgensym_754b0115c175ee89_49 && (found48zgensym_754b0115c175ee89_49[nextMiss48zgensym_754b0115c175ee89_49] || unmarshalMsgFieldSkip48zgensym_754b0115c175ee89_49[nextMiss48zgensym_754b0115c175ee89_49]) {
  2278  				nextMiss48zgensym_754b0115c175ee89_49++
  2279  			}
  2280  			if nextMiss48zgensym_754b0115c175ee89_49 == maxFields48zgensym_754b0115c175ee89_49 {
  2281  				// filled all the empty fields!
  2282  				break doneWithStruct48zgensym_754b0115c175ee89_49
  2283  			}
  2284  			missingFieldsLeft48zgensym_754b0115c175ee89_49--
  2285  			curField48zgensym_754b0115c175ee89_49 = unmarshalMsgFieldOrder48zgensym_754b0115c175ee89_49[nextMiss48zgensym_754b0115c175ee89_49]
  2286  		}
  2287  		//fmt.Printf("switching on curField: '%v'\n", curField48zgensym_754b0115c175ee89_49)
  2288  		switch curField48zgensym_754b0115c175ee89_49 {
  2289  		// -- templateUnmarshalMsg ends here --
  2290  
  2291  		case "Kind":
  2292  			found48zgensym_754b0115c175ee89_49[0] = true
  2293  			{
  2294  				var zgensym_754b0115c175ee89_50 uint64
  2295  				zgensym_754b0115c175ee89_50, bts, err = nbs.ReadUint64Bytes(bts)
  2296  
  2297  				if err != nil {
  2298  					return
  2299  				}
  2300  				z.Kind = Zkind(zgensym_754b0115c175ee89_50)
  2301  			}
  2302  		case "Str":
  2303  			found48zgensym_754b0115c175ee89_49[1] = true
  2304  			z.Str, bts, err = nbs.ReadStringBytes(bts)
  2305  
  2306  			if err != nil {
  2307  				return
  2308  			}
  2309  		case "Domain":
  2310  			found48zgensym_754b0115c175ee89_49[2] = true
  2311  			if nbs.AlwaysNil {
  2312  				if z.Domain != nil {
  2313  					z.Domain.UnmarshalMsg(msgp.OnlyNilSlice)
  2314  				}
  2315  			} else {
  2316  				// not nbs.AlwaysNil
  2317  				if msgp.IsNil(bts) {
  2318  					bts = bts[1:]
  2319  					if nil != z.Domain {
  2320  						z.Domain.UnmarshalMsg(msgp.OnlyNilSlice)
  2321  					}
  2322  				} else {
  2323  					// not nbs.AlwaysNil and not IsNil(bts): have something to read
  2324  
  2325  					if z.Domain == nil {
  2326  						z.Domain = new(Ztype)
  2327  					}
  2328  					bts, err = z.Domain.UnmarshalMsg(bts)
  2329  					if err != nil {
  2330  						return
  2331  					}
  2332  					if err != nil {
  2333  						return
  2334  					}
  2335  				}
  2336  			}
  2337  		case "Range":
  2338  			found48zgensym_754b0115c175ee89_49[3] = true
  2339  			if nbs.AlwaysNil {
  2340  				if z.Range != nil {
  2341  					z.Range.UnmarshalMsg(msgp.OnlyNilSlice)
  2342  				}
  2343  			} else {
  2344  				// not nbs.AlwaysNil
  2345  				if msgp.IsNil(bts) {
  2346  					bts = bts[1:]
  2347  					if nil != z.Range {
  2348  						z.Range.UnmarshalMsg(msgp.OnlyNilSlice)
  2349  					}
  2350  				} else {
  2351  					// not nbs.AlwaysNil and not IsNil(bts): have something to read
  2352  
  2353  					if z.Range == nil {
  2354  						z.Range = new(Ztype)
  2355  					}
  2356  					bts, err = z.Range.UnmarshalMsg(bts)
  2357  					if err != nil {
  2358  						return
  2359  					}
  2360  					if err != nil {
  2361  						return
  2362  					}
  2363  				}
  2364  			}
  2365  		default:
  2366  			bts, err = msgp.Skip(bts)
  2367  			if err != nil {
  2368  				return
  2369  			}
  2370  		}
  2371  	}
  2372  	if nextMiss48zgensym_754b0115c175ee89_49 != -1 {
  2373  		bts = nbs.PopAlwaysNil()
  2374  	}
  2375  
  2376  	if sawTopNil {
  2377  		bts = nbs.PopAlwaysNil()
  2378  	}
  2379  	o = bts
  2380  	if p, ok := interface{}(z).(msgp.PostLoad); ok {
  2381  		p.PostLoadHook()
  2382  	}
  2383  
  2384  	return
  2385  }
  2386  
  2387  // fields of Ztype
  2388  var unmarshalMsgFieldOrder48zgensym_754b0115c175ee89_49 = []string{"Kind", "Str", "Domain", "Range"}
  2389  
  2390  var unmarshalMsgFieldSkip48zgensym_754b0115c175ee89_49 = []bool{false, false, false, false}
  2391  
  2392  // Msgsize returns an upper bound estimate of the number of bytes occupied by the serialized message
  2393  func (z *Ztype) Msgsize() (s int) {
  2394  	s = 1 + 5 + msgp.Uint64Size + 4 + msgp.StringPrefixSize + len(z.Str) + 7
  2395  	if z.Domain == nil {
  2396  		s += msgp.NilSize
  2397  	} else {
  2398  		s += z.Domain.Msgsize()
  2399  	}
  2400  	s += 6
  2401  	if z.Range == nil {
  2402  		s += msgp.NilSize
  2403  	} else {
  2404  		s += z.Range.Msgsize()
  2405  	}
  2406  	return
  2407  }