github.com/cloudwego/dynamicgo@v0.2.6-0.20240519101509-707f41b6b834/testdata/kitex_gen/example3/k-example3.go (about)

     1  // Code generated by Kitex v0.0.3. DO NOT EDIT.
     2  
     3  package example3
     4  
     5  import (
     6  	"bytes"
     7  	"fmt"
     8  	"reflect"
     9  	"strings"
    10  
    11  	"github.com/apache/thrift/lib/go/thrift"
    12  
    13  	"github.com/cloudwego/dynamicgo/testdata/kitex_gen/base"
    14  	"github.com/cloudwego/dynamicgo/testdata/kitex_gen/ref"
    15  	"github.com/cloudwego/kitex/pkg/protocol/bthrift"
    16  )
    17  
    18  // unused protection
    19  var (
    20  	_ = fmt.Formatter(nil)
    21  	_ = (*bytes.Buffer)(nil)
    22  	_ = (*strings.Builder)(nil)
    23  	_ = reflect.Type(nil)
    24  	_ = thrift.TProtocol(nil)
    25  	_ = bthrift.BinaryWriter(nil)
    26  	_ = base.KitexUnusedProtection
    27  	_ = ref.KitexUnusedProtection
    28  )
    29  
    30  func (p *InnerBase) FastRead(buf []byte) (int, error) {
    31  	var err error
    32  	var offset int
    33  	var l int
    34  	var fieldTypeId thrift.TType
    35  	var fieldId int16
    36  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
    37  	offset += l
    38  	if err != nil {
    39  		goto ReadStructBeginError
    40  	}
    41  
    42  	for {
    43  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
    44  		offset += l
    45  		if err != nil {
    46  			goto ReadFieldBeginError
    47  		}
    48  		if fieldTypeId == thrift.STOP {
    49  			break
    50  		}
    51  		switch fieldId {
    52  		case 1:
    53  			if fieldTypeId == thrift.BOOL {
    54  				l, err = p.FastReadField1(buf[offset:])
    55  				offset += l
    56  				if err != nil {
    57  					goto ReadFieldError
    58  				}
    59  			} else {
    60  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
    61  				offset += l
    62  				if err != nil {
    63  					goto SkipFieldError
    64  				}
    65  			}
    66  		case 2:
    67  			if fieldTypeId == thrift.BYTE {
    68  				l, err = p.FastReadField2(buf[offset:])
    69  				offset += l
    70  				if err != nil {
    71  					goto ReadFieldError
    72  				}
    73  			} else {
    74  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
    75  				offset += l
    76  				if err != nil {
    77  					goto SkipFieldError
    78  				}
    79  			}
    80  		case 3:
    81  			if fieldTypeId == thrift.I16 {
    82  				l, err = p.FastReadField3(buf[offset:])
    83  				offset += l
    84  				if err != nil {
    85  					goto ReadFieldError
    86  				}
    87  			} else {
    88  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
    89  				offset += l
    90  				if err != nil {
    91  					goto SkipFieldError
    92  				}
    93  			}
    94  		case 4:
    95  			if fieldTypeId == thrift.I32 {
    96  				l, err = p.FastReadField4(buf[offset:])
    97  				offset += l
    98  				if err != nil {
    99  					goto ReadFieldError
   100  				}
   101  			} else {
   102  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   103  				offset += l
   104  				if err != nil {
   105  					goto SkipFieldError
   106  				}
   107  			}
   108  		case 5:
   109  			if fieldTypeId == thrift.I64 {
   110  				l, err = p.FastReadField5(buf[offset:])
   111  				offset += l
   112  				if err != nil {
   113  					goto ReadFieldError
   114  				}
   115  			} else {
   116  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   117  				offset += l
   118  				if err != nil {
   119  					goto SkipFieldError
   120  				}
   121  			}
   122  		case 6:
   123  			if fieldTypeId == thrift.DOUBLE {
   124  				l, err = p.FastReadField6(buf[offset:])
   125  				offset += l
   126  				if err != nil {
   127  					goto ReadFieldError
   128  				}
   129  			} else {
   130  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   131  				offset += l
   132  				if err != nil {
   133  					goto SkipFieldError
   134  				}
   135  			}
   136  		case 7:
   137  			if fieldTypeId == thrift.STRING {
   138  				l, err = p.FastReadField7(buf[offset:])
   139  				offset += l
   140  				if err != nil {
   141  					goto ReadFieldError
   142  				}
   143  			} else {
   144  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   145  				offset += l
   146  				if err != nil {
   147  					goto SkipFieldError
   148  				}
   149  			}
   150  		case 8:
   151  			if fieldTypeId == thrift.LIST {
   152  				l, err = p.FastReadField8(buf[offset:])
   153  				offset += l
   154  				if err != nil {
   155  					goto ReadFieldError
   156  				}
   157  			} else {
   158  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   159  				offset += l
   160  				if err != nil {
   161  					goto SkipFieldError
   162  				}
   163  			}
   164  		case 9:
   165  			if fieldTypeId == thrift.MAP {
   166  				l, err = p.FastReadField9(buf[offset:])
   167  				offset += l
   168  				if err != nil {
   169  					goto ReadFieldError
   170  				}
   171  			} else {
   172  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   173  				offset += l
   174  				if err != nil {
   175  					goto SkipFieldError
   176  				}
   177  			}
   178  		case 10:
   179  			if fieldTypeId == thrift.SET {
   180  				l, err = p.FastReadField10(buf[offset:])
   181  				offset += l
   182  				if err != nil {
   183  					goto ReadFieldError
   184  				}
   185  			} else {
   186  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   187  				offset += l
   188  				if err != nil {
   189  					goto SkipFieldError
   190  				}
   191  			}
   192  		case 11:
   193  			if fieldTypeId == thrift.I32 {
   194  				l, err = p.FastReadField11(buf[offset:])
   195  				offset += l
   196  				if err != nil {
   197  					goto ReadFieldError
   198  				}
   199  			} else {
   200  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   201  				offset += l
   202  				if err != nil {
   203  					goto SkipFieldError
   204  				}
   205  			}
   206  		case 12:
   207  			if fieldTypeId == thrift.MAP {
   208  				l, err = p.FastReadField12(buf[offset:])
   209  				offset += l
   210  				if err != nil {
   211  					goto ReadFieldError
   212  				}
   213  			} else {
   214  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   215  				offset += l
   216  				if err != nil {
   217  					goto SkipFieldError
   218  				}
   219  			}
   220  		case 13:
   221  			if fieldTypeId == thrift.STRING {
   222  				l, err = p.FastReadField13(buf[offset:])
   223  				offset += l
   224  				if err != nil {
   225  					goto ReadFieldError
   226  				}
   227  			} else {
   228  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   229  				offset += l
   230  				if err != nil {
   231  					goto SkipFieldError
   232  				}
   233  			}
   234  		case 14:
   235  			if fieldTypeId == thrift.MAP {
   236  				l, err = p.FastReadField14(buf[offset:])
   237  				offset += l
   238  				if err != nil {
   239  					goto ReadFieldError
   240  				}
   241  			} else {
   242  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   243  				offset += l
   244  				if err != nil {
   245  					goto SkipFieldError
   246  				}
   247  			}
   248  		case 15:
   249  			if fieldTypeId == thrift.MAP {
   250  				l, err = p.FastReadField15(buf[offset:])
   251  				offset += l
   252  				if err != nil {
   253  					goto ReadFieldError
   254  				}
   255  			} else {
   256  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   257  				offset += l
   258  				if err != nil {
   259  					goto SkipFieldError
   260  				}
   261  			}
   262  		case 16:
   263  			if fieldTypeId == thrift.MAP {
   264  				l, err = p.FastReadField16(buf[offset:])
   265  				offset += l
   266  				if err != nil {
   267  					goto ReadFieldError
   268  				}
   269  			} else {
   270  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   271  				offset += l
   272  				if err != nil {
   273  					goto SkipFieldError
   274  				}
   275  			}
   276  		case 18:
   277  			if fieldTypeId == thrift.LIST {
   278  				l, err = p.FastReadField18(buf[offset:])
   279  				offset += l
   280  				if err != nil {
   281  					goto ReadFieldError
   282  				}
   283  			} else {
   284  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   285  				offset += l
   286  				if err != nil {
   287  					goto SkipFieldError
   288  				}
   289  			}
   290  		case 19:
   291  			if fieldTypeId == thrift.MAP {
   292  				l, err = p.FastReadField19(buf[offset:])
   293  				offset += l
   294  				if err != nil {
   295  					goto ReadFieldError
   296  				}
   297  			} else {
   298  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   299  				offset += l
   300  				if err != nil {
   301  					goto SkipFieldError
   302  				}
   303  			}
   304  		case 20:
   305  			if fieldTypeId == thrift.STRING {
   306  				l, err = p.FastReadField20(buf[offset:])
   307  				offset += l
   308  				if err != nil {
   309  					goto ReadFieldError
   310  				}
   311  			} else {
   312  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   313  				offset += l
   314  				if err != nil {
   315  					goto SkipFieldError
   316  				}
   317  			}
   318  		case 255:
   319  			if fieldTypeId == thrift.STRUCT {
   320  				l, err = p.FastReadField255(buf[offset:])
   321  				offset += l
   322  				if err != nil {
   323  					goto ReadFieldError
   324  				}
   325  			} else {
   326  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   327  				offset += l
   328  				if err != nil {
   329  					goto SkipFieldError
   330  				}
   331  			}
   332  		default:
   333  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
   334  			offset += l
   335  			if err != nil {
   336  				goto SkipFieldError
   337  			}
   338  		}
   339  
   340  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
   341  		offset += l
   342  		if err != nil {
   343  			goto ReadFieldEndError
   344  		}
   345  	}
   346  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
   347  	offset += l
   348  	if err != nil {
   349  		goto ReadStructEndError
   350  	}
   351  
   352  	return offset, nil
   353  ReadStructBeginError:
   354  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
   355  ReadFieldBeginError:
   356  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
   357  ReadFieldError:
   358  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_InnerBase[fieldId]), err)
   359  SkipFieldError:
   360  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
   361  ReadFieldEndError:
   362  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
   363  ReadStructEndError:
   364  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
   365  }
   366  
   367  func (p *InnerBase) FastReadField1(buf []byte) (int, error) {
   368  	offset := 0
   369  
   370  	if v, l, err := bthrift.Binary.ReadBool(buf[offset:]); err != nil {
   371  		return offset, err
   372  	} else {
   373  		offset += l
   374  
   375  		p.Bool = v
   376  
   377  	}
   378  	return offset, nil
   379  }
   380  
   381  func (p *InnerBase) FastReadField2(buf []byte) (int, error) {
   382  	offset := 0
   383  
   384  	if v, l, err := bthrift.Binary.ReadByte(buf[offset:]); err != nil {
   385  		return offset, err
   386  	} else {
   387  		offset += l
   388  
   389  		p.Byte = v
   390  
   391  	}
   392  	return offset, nil
   393  }
   394  
   395  func (p *InnerBase) FastReadField3(buf []byte) (int, error) {
   396  	offset := 0
   397  
   398  	if v, l, err := bthrift.Binary.ReadI16(buf[offset:]); err != nil {
   399  		return offset, err
   400  	} else {
   401  		offset += l
   402  
   403  		p.Int16 = v
   404  
   405  	}
   406  	return offset, nil
   407  }
   408  
   409  func (p *InnerBase) FastReadField4(buf []byte) (int, error) {
   410  	offset := 0
   411  
   412  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
   413  		return offset, err
   414  	} else {
   415  		offset += l
   416  
   417  		p.Int32 = v
   418  
   419  	}
   420  	return offset, nil
   421  }
   422  
   423  func (p *InnerBase) FastReadField5(buf []byte) (int, error) {
   424  	offset := 0
   425  
   426  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
   427  		return offset, err
   428  	} else {
   429  		offset += l
   430  
   431  		p.Int64 = v
   432  
   433  	}
   434  	return offset, nil
   435  }
   436  
   437  func (p *InnerBase) FastReadField6(buf []byte) (int, error) {
   438  	offset := 0
   439  
   440  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
   441  		return offset, err
   442  	} else {
   443  		offset += l
   444  
   445  		p.Double = v
   446  
   447  	}
   448  	return offset, nil
   449  }
   450  
   451  func (p *InnerBase) FastReadField7(buf []byte) (int, error) {
   452  	offset := 0
   453  
   454  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
   455  		return offset, err
   456  	} else {
   457  		offset += l
   458  
   459  		p.String_ = v
   460  
   461  	}
   462  	return offset, nil
   463  }
   464  
   465  func (p *InnerBase) FastReadField8(buf []byte) (int, error) {
   466  	offset := 0
   467  
   468  	_, size, l, err := bthrift.Binary.ReadListBegin(buf[offset:])
   469  	offset += l
   470  	if err != nil {
   471  		return offset, err
   472  	}
   473  	p.ListInt32 = make([]int32, 0, size)
   474  	for i := 0; i < size; i++ {
   475  		var _elem int32
   476  		if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
   477  			return offset, err
   478  		} else {
   479  			offset += l
   480  
   481  			_elem = v
   482  
   483  		}
   484  
   485  		p.ListInt32 = append(p.ListInt32, _elem)
   486  	}
   487  	if l, err := bthrift.Binary.ReadListEnd(buf[offset:]); err != nil {
   488  		return offset, err
   489  	} else {
   490  		offset += l
   491  	}
   492  	return offset, nil
   493  }
   494  
   495  func (p *InnerBase) FastReadField9(buf []byte) (int, error) {
   496  	offset := 0
   497  
   498  	_, _, size, l, err := bthrift.Binary.ReadMapBegin(buf[offset:])
   499  	offset += l
   500  	if err != nil {
   501  		return offset, err
   502  	}
   503  	p.MapStringString = make(map[string]string, size)
   504  	for i := 0; i < size; i++ {
   505  		var _key string
   506  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
   507  			return offset, err
   508  		} else {
   509  			offset += l
   510  
   511  			_key = v
   512  
   513  		}
   514  
   515  		var _val string
   516  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
   517  			return offset, err
   518  		} else {
   519  			offset += l
   520  
   521  			_val = v
   522  
   523  		}
   524  
   525  		p.MapStringString[_key] = _val
   526  	}
   527  	if l, err := bthrift.Binary.ReadMapEnd(buf[offset:]); err != nil {
   528  		return offset, err
   529  	} else {
   530  		offset += l
   531  	}
   532  	return offset, nil
   533  }
   534  
   535  func (p *InnerBase) FastReadField10(buf []byte) (int, error) {
   536  	offset := 0
   537  
   538  	_, size, l, err := bthrift.Binary.ReadSetBegin(buf[offset:])
   539  	offset += l
   540  	if err != nil {
   541  		return offset, err
   542  	}
   543  	p.SetInt32_ = make([]int32, 0, size)
   544  	for i := 0; i < size; i++ {
   545  		var _elem int32
   546  		if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
   547  			return offset, err
   548  		} else {
   549  			offset += l
   550  
   551  			_elem = v
   552  
   553  		}
   554  
   555  		p.SetInt32_ = append(p.SetInt32_, _elem)
   556  	}
   557  	if l, err := bthrift.Binary.ReadSetEnd(buf[offset:]); err != nil {
   558  		return offset, err
   559  	} else {
   560  		offset += l
   561  	}
   562  	return offset, nil
   563  }
   564  
   565  func (p *InnerBase) FastReadField11(buf []byte) (int, error) {
   566  	offset := 0
   567  
   568  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
   569  		return offset, err
   570  	} else {
   571  		offset += l
   572  
   573  		p.Foo = FOO(v)
   574  
   575  	}
   576  	return offset, nil
   577  }
   578  
   579  func (p *InnerBase) FastReadField12(buf []byte) (int, error) {
   580  	offset := 0
   581  
   582  	_, _, size, l, err := bthrift.Binary.ReadMapBegin(buf[offset:])
   583  	offset += l
   584  	if err != nil {
   585  		return offset, err
   586  	}
   587  	p.MapInt32String = make(map[int32]string, size)
   588  	for i := 0; i < size; i++ {
   589  		var _key int32
   590  		if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
   591  			return offset, err
   592  		} else {
   593  			offset += l
   594  
   595  			_key = v
   596  
   597  		}
   598  
   599  		var _val string
   600  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
   601  			return offset, err
   602  		} else {
   603  			offset += l
   604  
   605  			_val = v
   606  
   607  		}
   608  
   609  		p.MapInt32String[_key] = _val
   610  	}
   611  	if l, err := bthrift.Binary.ReadMapEnd(buf[offset:]); err != nil {
   612  		return offset, err
   613  	} else {
   614  		offset += l
   615  	}
   616  	return offset, nil
   617  }
   618  
   619  func (p *InnerBase) FastReadField13(buf []byte) (int, error) {
   620  	offset := 0
   621  
   622  	if v, l, err := bthrift.Binary.ReadBinary(buf[offset:]); err != nil {
   623  		return offset, err
   624  	} else {
   625  		offset += l
   626  
   627  		p.Binary = []byte(v)
   628  
   629  	}
   630  	return offset, nil
   631  }
   632  
   633  func (p *InnerBase) FastReadField14(buf []byte) (int, error) {
   634  	offset := 0
   635  
   636  	_, _, size, l, err := bthrift.Binary.ReadMapBegin(buf[offset:])
   637  	offset += l
   638  	if err != nil {
   639  		return offset, err
   640  	}
   641  	p.MapInt8String = make(map[int8]string, size)
   642  	for i := 0; i < size; i++ {
   643  		var _key int8
   644  		if v, l, err := bthrift.Binary.ReadByte(buf[offset:]); err != nil {
   645  			return offset, err
   646  		} else {
   647  			offset += l
   648  
   649  			_key = v
   650  
   651  		}
   652  
   653  		var _val string
   654  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
   655  			return offset, err
   656  		} else {
   657  			offset += l
   658  
   659  			_val = v
   660  
   661  		}
   662  
   663  		p.MapInt8String[_key] = _val
   664  	}
   665  	if l, err := bthrift.Binary.ReadMapEnd(buf[offset:]); err != nil {
   666  		return offset, err
   667  	} else {
   668  		offset += l
   669  	}
   670  	return offset, nil
   671  }
   672  
   673  func (p *InnerBase) FastReadField15(buf []byte) (int, error) {
   674  	offset := 0
   675  
   676  	_, _, size, l, err := bthrift.Binary.ReadMapBegin(buf[offset:])
   677  	offset += l
   678  	if err != nil {
   679  		return offset, err
   680  	}
   681  	p.MapInt16String = make(map[int16]string, size)
   682  	for i := 0; i < size; i++ {
   683  		var _key int16
   684  		if v, l, err := bthrift.Binary.ReadI16(buf[offset:]); err != nil {
   685  			return offset, err
   686  		} else {
   687  			offset += l
   688  
   689  			_key = v
   690  
   691  		}
   692  
   693  		var _val string
   694  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
   695  			return offset, err
   696  		} else {
   697  			offset += l
   698  
   699  			_val = v
   700  
   701  		}
   702  
   703  		p.MapInt16String[_key] = _val
   704  	}
   705  	if l, err := bthrift.Binary.ReadMapEnd(buf[offset:]); err != nil {
   706  		return offset, err
   707  	} else {
   708  		offset += l
   709  	}
   710  	return offset, nil
   711  }
   712  
   713  func (p *InnerBase) FastReadField16(buf []byte) (int, error) {
   714  	offset := 0
   715  
   716  	_, _, size, l, err := bthrift.Binary.ReadMapBegin(buf[offset:])
   717  	offset += l
   718  	if err != nil {
   719  		return offset, err
   720  	}
   721  	p.MapInt64String = make(map[int64]string, size)
   722  	for i := 0; i < size; i++ {
   723  		var _key int64
   724  		if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
   725  			return offset, err
   726  		} else {
   727  			offset += l
   728  
   729  			_key = v
   730  
   731  		}
   732  
   733  		var _val string
   734  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
   735  			return offset, err
   736  		} else {
   737  			offset += l
   738  
   739  			_val = v
   740  
   741  		}
   742  
   743  		p.MapInt64String[_key] = _val
   744  	}
   745  	if l, err := bthrift.Binary.ReadMapEnd(buf[offset:]); err != nil {
   746  		return offset, err
   747  	} else {
   748  		offset += l
   749  	}
   750  	return offset, nil
   751  }
   752  
   753  func (p *InnerBase) FastReadField18(buf []byte) (int, error) {
   754  	offset := 0
   755  
   756  	_, size, l, err := bthrift.Binary.ReadListBegin(buf[offset:])
   757  	offset += l
   758  	if err != nil {
   759  		return offset, err
   760  	}
   761  	p.ListInnerBase = make([]*InnerBase, 0, size)
   762  	for i := 0; i < size; i++ {
   763  		_elem := NewInnerBase()
   764  		if l, err := _elem.FastRead(buf[offset:]); err != nil {
   765  			return offset, err
   766  		} else {
   767  			offset += l
   768  		}
   769  
   770  		p.ListInnerBase = append(p.ListInnerBase, _elem)
   771  	}
   772  	if l, err := bthrift.Binary.ReadListEnd(buf[offset:]); err != nil {
   773  		return offset, err
   774  	} else {
   775  		offset += l
   776  	}
   777  	return offset, nil
   778  }
   779  
   780  func (p *InnerBase) FastReadField19(buf []byte) (int, error) {
   781  	offset := 0
   782  
   783  	_, _, size, l, err := bthrift.Binary.ReadMapBegin(buf[offset:])
   784  	offset += l
   785  	if err != nil {
   786  		return offset, err
   787  	}
   788  	p.MapStringInnerBase = make(map[string]*InnerBase, size)
   789  	for i := 0; i < size; i++ {
   790  		var _key string
   791  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
   792  			return offset, err
   793  		} else {
   794  			offset += l
   795  
   796  			_key = v
   797  
   798  		}
   799  		_val := NewInnerBase()
   800  		if l, err := _val.FastRead(buf[offset:]); err != nil {
   801  			return offset, err
   802  		} else {
   803  			offset += l
   804  		}
   805  
   806  		p.MapStringInnerBase[_key] = _val
   807  	}
   808  	if l, err := bthrift.Binary.ReadMapEnd(buf[offset:]); err != nil {
   809  		return offset, err
   810  	} else {
   811  		offset += l
   812  	}
   813  	return offset, nil
   814  }
   815  
   816  func (p *InnerBase) FastReadField20(buf []byte) (int, error) {
   817  	offset := 0
   818  
   819  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
   820  		return offset, err
   821  	} else {
   822  		offset += l
   823  
   824  		p.InnerQuery = v
   825  
   826  	}
   827  	return offset, nil
   828  }
   829  
   830  func (p *InnerBase) FastReadField255(buf []byte) (int, error) {
   831  	offset := 0
   832  	p.Base = base.NewBase()
   833  	if l, err := p.Base.FastRead(buf[offset:]); err != nil {
   834  		return offset, err
   835  	} else {
   836  		offset += l
   837  	}
   838  	return offset, nil
   839  }
   840  
   841  // for compatibility
   842  func (p *InnerBase) FastWrite(buf []byte) int {
   843  	return 0
   844  }
   845  
   846  func (p *InnerBase) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   847  	offset := 0
   848  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "InnerBase")
   849  	if p != nil {
   850  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
   851  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
   852  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
   853  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
   854  		offset += p.fastWriteField5(buf[offset:], binaryWriter)
   855  		offset += p.fastWriteField6(buf[offset:], binaryWriter)
   856  		offset += p.fastWriteField7(buf[offset:], binaryWriter)
   857  		offset += p.fastWriteField8(buf[offset:], binaryWriter)
   858  		offset += p.fastWriteField9(buf[offset:], binaryWriter)
   859  		offset += p.fastWriteField10(buf[offset:], binaryWriter)
   860  		offset += p.fastWriteField11(buf[offset:], binaryWriter)
   861  		offset += p.fastWriteField12(buf[offset:], binaryWriter)
   862  		offset += p.fastWriteField13(buf[offset:], binaryWriter)
   863  		offset += p.fastWriteField14(buf[offset:], binaryWriter)
   864  		offset += p.fastWriteField15(buf[offset:], binaryWriter)
   865  		offset += p.fastWriteField16(buf[offset:], binaryWriter)
   866  		offset += p.fastWriteField18(buf[offset:], binaryWriter)
   867  		offset += p.fastWriteField19(buf[offset:], binaryWriter)
   868  		offset += p.fastWriteField20(buf[offset:], binaryWriter)
   869  		offset += p.fastWriteField255(buf[offset:], binaryWriter)
   870  	}
   871  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
   872  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
   873  	return offset
   874  }
   875  
   876  func (p *InnerBase) BLength() int {
   877  	l := 0
   878  	l += bthrift.Binary.StructBeginLength("InnerBase")
   879  	if p != nil {
   880  		l += p.field1Length()
   881  		l += p.field2Length()
   882  		l += p.field3Length()
   883  		l += p.field4Length()
   884  		l += p.field5Length()
   885  		l += p.field6Length()
   886  		l += p.field7Length()
   887  		l += p.field8Length()
   888  		l += p.field9Length()
   889  		l += p.field10Length()
   890  		l += p.field11Length()
   891  		l += p.field12Length()
   892  		l += p.field13Length()
   893  		l += p.field14Length()
   894  		l += p.field15Length()
   895  		l += p.field16Length()
   896  		l += p.field18Length()
   897  		l += p.field19Length()
   898  		l += p.field20Length()
   899  		l += p.field255Length()
   900  	}
   901  	l += bthrift.Binary.FieldStopLength()
   902  	l += bthrift.Binary.StructEndLength()
   903  	return l
   904  }
   905  
   906  func (p *InnerBase) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   907  	offset := 0
   908  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Bool", thrift.BOOL, 1)
   909  	offset += bthrift.Binary.WriteBool(buf[offset:], p.Bool)
   910  
   911  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
   912  	return offset
   913  }
   914  
   915  func (p *InnerBase) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   916  	offset := 0
   917  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Byte", thrift.BYTE, 2)
   918  	offset += bthrift.Binary.WriteByte(buf[offset:], p.Byte)
   919  
   920  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
   921  	return offset
   922  }
   923  
   924  func (p *InnerBase) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   925  	offset := 0
   926  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Int16", thrift.I16, 3)
   927  	offset += bthrift.Binary.WriteI16(buf[offset:], p.Int16)
   928  
   929  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
   930  	return offset
   931  }
   932  
   933  func (p *InnerBase) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   934  	offset := 0
   935  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Int32", thrift.I32, 4)
   936  	offset += bthrift.Binary.WriteI32(buf[offset:], p.Int32)
   937  
   938  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
   939  	return offset
   940  }
   941  
   942  func (p *InnerBase) fastWriteField5(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   943  	offset := 0
   944  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Int64", thrift.I64, 5)
   945  	offset += bthrift.Binary.WriteI64(buf[offset:], p.Int64)
   946  
   947  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
   948  	return offset
   949  }
   950  
   951  func (p *InnerBase) fastWriteField6(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   952  	offset := 0
   953  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Double", thrift.DOUBLE, 6)
   954  	offset += bthrift.Binary.WriteDouble(buf[offset:], p.Double)
   955  
   956  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
   957  	return offset
   958  }
   959  
   960  func (p *InnerBase) fastWriteField7(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   961  	offset := 0
   962  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "String", thrift.STRING, 7)
   963  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.String_)
   964  
   965  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
   966  	return offset
   967  }
   968  
   969  func (p *InnerBase) fastWriteField8(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   970  	offset := 0
   971  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "ListInt32", thrift.LIST, 8)
   972  	offset += bthrift.Binary.WriteListBegin(buf[offset:], thrift.I32, len(p.ListInt32))
   973  	for _, v := range p.ListInt32 {
   974  		offset += bthrift.Binary.WriteI32(buf[offset:], v)
   975  
   976  	}
   977  	offset += bthrift.Binary.WriteListEnd(buf[offset:])
   978  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
   979  	return offset
   980  }
   981  
   982  func (p *InnerBase) fastWriteField9(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   983  	offset := 0
   984  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "MapStringString", thrift.MAP, 9)
   985  	offset += bthrift.Binary.WriteMapBegin(buf[offset:], thrift.STRING, thrift.STRING, len(p.MapStringString))
   986  	for k, v := range p.MapStringString {
   987  
   988  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, k)
   989  
   990  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, v)
   991  
   992  	}
   993  	offset += bthrift.Binary.WriteMapEnd(buf[offset:])
   994  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
   995  	return offset
   996  }
   997  
   998  func (p *InnerBase) fastWriteField10(buf []byte, binaryWriter bthrift.BinaryWriter) int {
   999  	offset := 0
  1000  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "SetInt32", thrift.SET, 10)
  1001  	offset += bthrift.Binary.WriteSetBegin(buf[offset:], thrift.I32, len(p.SetInt32_))
  1002  
  1003  	for i := 0; i < len(p.SetInt32_); i++ {
  1004  		for j := i + 1; j < len(p.SetInt32_); j++ {
  1005  			if func(tgt, src int32) bool {
  1006  				if tgt != src {
  1007  					return false
  1008  				}
  1009  				return true
  1010  			}(p.SetInt32_[i], p.SetInt32_[j]) {
  1011  				panic(fmt.Errorf("%T error writing set field: slice is not unique", p.SetInt32_[i]))
  1012  			}
  1013  		}
  1014  	}
  1015  	for _, v := range p.SetInt32_ {
  1016  		offset += bthrift.Binary.WriteI32(buf[offset:], v)
  1017  
  1018  	}
  1019  	offset += bthrift.Binary.WriteSetEnd(buf[offset:])
  1020  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1021  	return offset
  1022  }
  1023  
  1024  func (p *InnerBase) fastWriteField11(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1025  	offset := 0
  1026  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Foo", thrift.I32, 11)
  1027  	offset += bthrift.Binary.WriteI32(buf[offset:], int32(p.Foo))
  1028  
  1029  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1030  	return offset
  1031  }
  1032  
  1033  func (p *InnerBase) fastWriteField12(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1034  	offset := 0
  1035  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "MapInt32String", thrift.MAP, 12)
  1036  	offset += bthrift.Binary.WriteMapBegin(buf[offset:], thrift.I32, thrift.STRING, len(p.MapInt32String))
  1037  	for k, v := range p.MapInt32String {
  1038  
  1039  		offset += bthrift.Binary.WriteI32(buf[offset:], k)
  1040  
  1041  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, v)
  1042  
  1043  	}
  1044  	offset += bthrift.Binary.WriteMapEnd(buf[offset:])
  1045  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1046  	return offset
  1047  }
  1048  
  1049  func (p *InnerBase) fastWriteField13(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1050  	offset := 0
  1051  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Binary", thrift.STRING, 13)
  1052  	offset += bthrift.Binary.WriteBinaryNocopy(buf[offset:], binaryWriter, []byte(p.Binary))
  1053  
  1054  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1055  	return offset
  1056  }
  1057  
  1058  func (p *InnerBase) fastWriteField14(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1059  	offset := 0
  1060  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "MapInt8String", thrift.MAP, 14)
  1061  	offset += bthrift.Binary.WriteMapBegin(buf[offset:], thrift.BYTE, thrift.STRING, len(p.MapInt8String))
  1062  	for k, v := range p.MapInt8String {
  1063  
  1064  		offset += bthrift.Binary.WriteByte(buf[offset:], k)
  1065  
  1066  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, v)
  1067  
  1068  	}
  1069  	offset += bthrift.Binary.WriteMapEnd(buf[offset:])
  1070  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1071  	return offset
  1072  }
  1073  
  1074  func (p *InnerBase) fastWriteField15(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1075  	offset := 0
  1076  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "MapInt16String", thrift.MAP, 15)
  1077  	offset += bthrift.Binary.WriteMapBegin(buf[offset:], thrift.I16, thrift.STRING, len(p.MapInt16String))
  1078  	for k, v := range p.MapInt16String {
  1079  
  1080  		offset += bthrift.Binary.WriteI16(buf[offset:], k)
  1081  
  1082  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, v)
  1083  
  1084  	}
  1085  	offset += bthrift.Binary.WriteMapEnd(buf[offset:])
  1086  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1087  	return offset
  1088  }
  1089  
  1090  func (p *InnerBase) fastWriteField16(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1091  	offset := 0
  1092  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "MapInt64String", thrift.MAP, 16)
  1093  	offset += bthrift.Binary.WriteMapBegin(buf[offset:], thrift.I64, thrift.STRING, len(p.MapInt64String))
  1094  	for k, v := range p.MapInt64String {
  1095  
  1096  		offset += bthrift.Binary.WriteI64(buf[offset:], k)
  1097  
  1098  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, v)
  1099  
  1100  	}
  1101  	offset += bthrift.Binary.WriteMapEnd(buf[offset:])
  1102  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1103  	return offset
  1104  }
  1105  
  1106  func (p *InnerBase) fastWriteField18(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1107  	offset := 0
  1108  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "ListInnerBase", thrift.LIST, 18)
  1109  	offset += bthrift.Binary.WriteListBegin(buf[offset:], thrift.STRUCT, len(p.ListInnerBase))
  1110  	for _, v := range p.ListInnerBase {
  1111  		offset += v.FastWriteNocopy(buf[offset:], binaryWriter)
  1112  	}
  1113  	offset += bthrift.Binary.WriteListEnd(buf[offset:])
  1114  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1115  	return offset
  1116  }
  1117  
  1118  func (p *InnerBase) fastWriteField19(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1119  	offset := 0
  1120  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "MapStringInnerBase", thrift.MAP, 19)
  1121  	offset += bthrift.Binary.WriteMapBegin(buf[offset:], thrift.STRING, thrift.STRUCT, len(p.MapStringInnerBase))
  1122  	for k, v := range p.MapStringInnerBase {
  1123  
  1124  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, k)
  1125  
  1126  		offset += v.FastWriteNocopy(buf[offset:], binaryWriter)
  1127  	}
  1128  	offset += bthrift.Binary.WriteMapEnd(buf[offset:])
  1129  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1130  	return offset
  1131  }
  1132  
  1133  func (p *InnerBase) fastWriteField20(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1134  	offset := 0
  1135  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "InnerQuery", thrift.STRING, 20)
  1136  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.InnerQuery)
  1137  
  1138  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1139  	return offset
  1140  }
  1141  
  1142  func (p *InnerBase) fastWriteField255(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1143  	offset := 0
  1144  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Base", thrift.STRUCT, 255)
  1145  	offset += p.Base.FastWriteNocopy(buf[offset:], binaryWriter)
  1146  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1147  	return offset
  1148  }
  1149  
  1150  func (p *InnerBase) field1Length() int {
  1151  	l := 0
  1152  	l += bthrift.Binary.FieldBeginLength("Bool", thrift.BOOL, 1)
  1153  	l += bthrift.Binary.BoolLength(p.Bool)
  1154  
  1155  	l += bthrift.Binary.FieldEndLength()
  1156  	return l
  1157  }
  1158  
  1159  func (p *InnerBase) field2Length() int {
  1160  	l := 0
  1161  	l += bthrift.Binary.FieldBeginLength("Byte", thrift.BYTE, 2)
  1162  	l += bthrift.Binary.ByteLength(p.Byte)
  1163  
  1164  	l += bthrift.Binary.FieldEndLength()
  1165  	return l
  1166  }
  1167  
  1168  func (p *InnerBase) field3Length() int {
  1169  	l := 0
  1170  	l += bthrift.Binary.FieldBeginLength("Int16", thrift.I16, 3)
  1171  	l += bthrift.Binary.I16Length(p.Int16)
  1172  
  1173  	l += bthrift.Binary.FieldEndLength()
  1174  	return l
  1175  }
  1176  
  1177  func (p *InnerBase) field4Length() int {
  1178  	l := 0
  1179  	l += bthrift.Binary.FieldBeginLength("Int32", thrift.I32, 4)
  1180  	l += bthrift.Binary.I32Length(p.Int32)
  1181  
  1182  	l += bthrift.Binary.FieldEndLength()
  1183  	return l
  1184  }
  1185  
  1186  func (p *InnerBase) field5Length() int {
  1187  	l := 0
  1188  	l += bthrift.Binary.FieldBeginLength("Int64", thrift.I64, 5)
  1189  	l += bthrift.Binary.I64Length(p.Int64)
  1190  
  1191  	l += bthrift.Binary.FieldEndLength()
  1192  	return l
  1193  }
  1194  
  1195  func (p *InnerBase) field6Length() int {
  1196  	l := 0
  1197  	l += bthrift.Binary.FieldBeginLength("Double", thrift.DOUBLE, 6)
  1198  	l += bthrift.Binary.DoubleLength(p.Double)
  1199  
  1200  	l += bthrift.Binary.FieldEndLength()
  1201  	return l
  1202  }
  1203  
  1204  func (p *InnerBase) field7Length() int {
  1205  	l := 0
  1206  	l += bthrift.Binary.FieldBeginLength("String", thrift.STRING, 7)
  1207  	l += bthrift.Binary.StringLengthNocopy(p.String_)
  1208  
  1209  	l += bthrift.Binary.FieldEndLength()
  1210  	return l
  1211  }
  1212  
  1213  func (p *InnerBase) field8Length() int {
  1214  	l := 0
  1215  	l += bthrift.Binary.FieldBeginLength("ListInt32", thrift.LIST, 8)
  1216  	l += bthrift.Binary.ListBeginLength(thrift.I32, len(p.ListInt32))
  1217  	var tmpV int32
  1218  	l += bthrift.Binary.I32Length(int32(tmpV)) * len(p.ListInt32)
  1219  	l += bthrift.Binary.ListEndLength()
  1220  	l += bthrift.Binary.FieldEndLength()
  1221  	return l
  1222  }
  1223  
  1224  func (p *InnerBase) field9Length() int {
  1225  	l := 0
  1226  	l += bthrift.Binary.FieldBeginLength("MapStringString", thrift.MAP, 9)
  1227  	l += bthrift.Binary.MapBeginLength(thrift.STRING, thrift.STRING, len(p.MapStringString))
  1228  	for k, v := range p.MapStringString {
  1229  
  1230  		l += bthrift.Binary.StringLengthNocopy(k)
  1231  
  1232  		l += bthrift.Binary.StringLengthNocopy(v)
  1233  
  1234  	}
  1235  	l += bthrift.Binary.MapEndLength()
  1236  	l += bthrift.Binary.FieldEndLength()
  1237  	return l
  1238  }
  1239  
  1240  func (p *InnerBase) field10Length() int {
  1241  	l := 0
  1242  	l += bthrift.Binary.FieldBeginLength("SetInt32", thrift.SET, 10)
  1243  	l += bthrift.Binary.SetBeginLength(thrift.I32, len(p.SetInt32_))
  1244  
  1245  	for i := 0; i < len(p.SetInt32_); i++ {
  1246  		for j := i + 1; j < len(p.SetInt32_); j++ {
  1247  			if func(tgt, src int32) bool {
  1248  				if tgt != src {
  1249  					return false
  1250  				}
  1251  				return true
  1252  			}(p.SetInt32_[i], p.SetInt32_[j]) {
  1253  				panic(fmt.Errorf("%T error writing set field: slice is not unique", p.SetInt32_[i]))
  1254  			}
  1255  		}
  1256  	}
  1257  	var tmpV int32
  1258  	l += bthrift.Binary.I32Length(int32(tmpV)) * len(p.SetInt32_)
  1259  	l += bthrift.Binary.SetEndLength()
  1260  	l += bthrift.Binary.FieldEndLength()
  1261  	return l
  1262  }
  1263  
  1264  func (p *InnerBase) field11Length() int {
  1265  	l := 0
  1266  	l += bthrift.Binary.FieldBeginLength("Foo", thrift.I32, 11)
  1267  	l += bthrift.Binary.I32Length(int32(p.Foo))
  1268  
  1269  	l += bthrift.Binary.FieldEndLength()
  1270  	return l
  1271  }
  1272  
  1273  func (p *InnerBase) field12Length() int {
  1274  	l := 0
  1275  	l += bthrift.Binary.FieldBeginLength("MapInt32String", thrift.MAP, 12)
  1276  	l += bthrift.Binary.MapBeginLength(thrift.I32, thrift.STRING, len(p.MapInt32String))
  1277  	for k, v := range p.MapInt32String {
  1278  
  1279  		l += bthrift.Binary.I32Length(k)
  1280  
  1281  		l += bthrift.Binary.StringLengthNocopy(v)
  1282  
  1283  	}
  1284  	l += bthrift.Binary.MapEndLength()
  1285  	l += bthrift.Binary.FieldEndLength()
  1286  	return l
  1287  }
  1288  
  1289  func (p *InnerBase) field13Length() int {
  1290  	l := 0
  1291  	l += bthrift.Binary.FieldBeginLength("Binary", thrift.STRING, 13)
  1292  	l += bthrift.Binary.BinaryLengthNocopy([]byte(p.Binary))
  1293  
  1294  	l += bthrift.Binary.FieldEndLength()
  1295  	return l
  1296  }
  1297  
  1298  func (p *InnerBase) field14Length() int {
  1299  	l := 0
  1300  	l += bthrift.Binary.FieldBeginLength("MapInt8String", thrift.MAP, 14)
  1301  	l += bthrift.Binary.MapBeginLength(thrift.BYTE, thrift.STRING, len(p.MapInt8String))
  1302  	for k, v := range p.MapInt8String {
  1303  
  1304  		l += bthrift.Binary.ByteLength(k)
  1305  
  1306  		l += bthrift.Binary.StringLengthNocopy(v)
  1307  
  1308  	}
  1309  	l += bthrift.Binary.MapEndLength()
  1310  	l += bthrift.Binary.FieldEndLength()
  1311  	return l
  1312  }
  1313  
  1314  func (p *InnerBase) field15Length() int {
  1315  	l := 0
  1316  	l += bthrift.Binary.FieldBeginLength("MapInt16String", thrift.MAP, 15)
  1317  	l += bthrift.Binary.MapBeginLength(thrift.I16, thrift.STRING, len(p.MapInt16String))
  1318  	for k, v := range p.MapInt16String {
  1319  
  1320  		l += bthrift.Binary.I16Length(k)
  1321  
  1322  		l += bthrift.Binary.StringLengthNocopy(v)
  1323  
  1324  	}
  1325  	l += bthrift.Binary.MapEndLength()
  1326  	l += bthrift.Binary.FieldEndLength()
  1327  	return l
  1328  }
  1329  
  1330  func (p *InnerBase) field16Length() int {
  1331  	l := 0
  1332  	l += bthrift.Binary.FieldBeginLength("MapInt64String", thrift.MAP, 16)
  1333  	l += bthrift.Binary.MapBeginLength(thrift.I64, thrift.STRING, len(p.MapInt64String))
  1334  	for k, v := range p.MapInt64String {
  1335  
  1336  		l += bthrift.Binary.I64Length(k)
  1337  
  1338  		l += bthrift.Binary.StringLengthNocopy(v)
  1339  
  1340  	}
  1341  	l += bthrift.Binary.MapEndLength()
  1342  	l += bthrift.Binary.FieldEndLength()
  1343  	return l
  1344  }
  1345  
  1346  func (p *InnerBase) field18Length() int {
  1347  	l := 0
  1348  	l += bthrift.Binary.FieldBeginLength("ListInnerBase", thrift.LIST, 18)
  1349  	l += bthrift.Binary.ListBeginLength(thrift.STRUCT, len(p.ListInnerBase))
  1350  	for _, v := range p.ListInnerBase {
  1351  		l += v.BLength()
  1352  	}
  1353  	l += bthrift.Binary.ListEndLength()
  1354  	l += bthrift.Binary.FieldEndLength()
  1355  	return l
  1356  }
  1357  
  1358  func (p *InnerBase) field19Length() int {
  1359  	l := 0
  1360  	l += bthrift.Binary.FieldBeginLength("MapStringInnerBase", thrift.MAP, 19)
  1361  	l += bthrift.Binary.MapBeginLength(thrift.STRING, thrift.STRUCT, len(p.MapStringInnerBase))
  1362  	for k, v := range p.MapStringInnerBase {
  1363  
  1364  		l += bthrift.Binary.StringLengthNocopy(k)
  1365  
  1366  		l += v.BLength()
  1367  	}
  1368  	l += bthrift.Binary.MapEndLength()
  1369  	l += bthrift.Binary.FieldEndLength()
  1370  	return l
  1371  }
  1372  
  1373  func (p *InnerBase) field20Length() int {
  1374  	l := 0
  1375  	l += bthrift.Binary.FieldBeginLength("InnerQuery", thrift.STRING, 20)
  1376  	l += bthrift.Binary.StringLengthNocopy(p.InnerQuery)
  1377  
  1378  	l += bthrift.Binary.FieldEndLength()
  1379  	return l
  1380  }
  1381  
  1382  func (p *InnerBase) field255Length() int {
  1383  	l := 0
  1384  	l += bthrift.Binary.FieldBeginLength("Base", thrift.STRUCT, 255)
  1385  	l += p.Base.BLength()
  1386  	l += bthrift.Binary.FieldEndLength()
  1387  	return l
  1388  }
  1389  
  1390  func (p *ExampleReq) FastRead(buf []byte) (int, error) {
  1391  	var err error
  1392  	var offset int
  1393  	var l int
  1394  	var fieldTypeId thrift.TType
  1395  	var fieldId int16
  1396  	var issetPath bool = false
  1397  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  1398  	offset += l
  1399  	if err != nil {
  1400  		goto ReadStructBeginError
  1401  	}
  1402  
  1403  	for {
  1404  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  1405  		offset += l
  1406  		if err != nil {
  1407  			goto ReadFieldBeginError
  1408  		}
  1409  		if fieldTypeId == thrift.STOP {
  1410  			break
  1411  		}
  1412  		switch fieldId {
  1413  		case 1:
  1414  			if fieldTypeId == thrift.STRING {
  1415  				l, err = p.FastReadField1(buf[offset:])
  1416  				offset += l
  1417  				if err != nil {
  1418  					goto ReadFieldError
  1419  				}
  1420  			} else {
  1421  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1422  				offset += l
  1423  				if err != nil {
  1424  					goto SkipFieldError
  1425  				}
  1426  			}
  1427  		case 2:
  1428  			if fieldTypeId == thrift.DOUBLE {
  1429  				l, err = p.FastReadField2(buf[offset:])
  1430  				offset += l
  1431  				if err != nil {
  1432  					goto ReadFieldError
  1433  				}
  1434  			} else {
  1435  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1436  				offset += l
  1437  				if err != nil {
  1438  					goto SkipFieldError
  1439  				}
  1440  			}
  1441  		case 3:
  1442  			if fieldTypeId == thrift.STRING {
  1443  				l, err = p.FastReadField3(buf[offset:])
  1444  				offset += l
  1445  				if err != nil {
  1446  					goto ReadFieldError
  1447  				}
  1448  				issetPath = true
  1449  			} else {
  1450  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1451  				offset += l
  1452  				if err != nil {
  1453  					goto SkipFieldError
  1454  				}
  1455  			}
  1456  		case 4:
  1457  			if fieldTypeId == thrift.LIST {
  1458  				l, err = p.FastReadField4(buf[offset:])
  1459  				offset += l
  1460  				if err != nil {
  1461  					goto ReadFieldError
  1462  				}
  1463  			} else {
  1464  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1465  				offset += l
  1466  				if err != nil {
  1467  					goto SkipFieldError
  1468  				}
  1469  			}
  1470  		case 5:
  1471  			if fieldTypeId == thrift.BOOL {
  1472  				l, err = p.FastReadField5(buf[offset:])
  1473  				offset += l
  1474  				if err != nil {
  1475  					goto ReadFieldError
  1476  				}
  1477  			} else {
  1478  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1479  				offset += l
  1480  				if err != nil {
  1481  					goto SkipFieldError
  1482  				}
  1483  			}
  1484  		case 6:
  1485  			if fieldTypeId == thrift.I64 {
  1486  				l, err = p.FastReadField6(buf[offset:])
  1487  				offset += l
  1488  				if err != nil {
  1489  					goto ReadFieldError
  1490  				}
  1491  			} else {
  1492  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1493  				offset += l
  1494  				if err != nil {
  1495  					goto SkipFieldError
  1496  				}
  1497  			}
  1498  		case 7:
  1499  			if fieldTypeId == thrift.STRUCT {
  1500  				l, err = p.FastReadField7(buf[offset:])
  1501  				offset += l
  1502  				if err != nil {
  1503  					goto ReadFieldError
  1504  				}
  1505  			} else {
  1506  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1507  				offset += l
  1508  				if err != nil {
  1509  					goto SkipFieldError
  1510  				}
  1511  			}
  1512  		case 8:
  1513  			if fieldTypeId == thrift.STRING {
  1514  				l, err = p.FastReadField8(buf[offset:])
  1515  				offset += l
  1516  				if err != nil {
  1517  					goto ReadFieldError
  1518  				}
  1519  			} else {
  1520  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1521  				offset += l
  1522  				if err != nil {
  1523  					goto SkipFieldError
  1524  				}
  1525  			}
  1526  		case 32767:
  1527  			if fieldTypeId == thrift.DOUBLE {
  1528  				l, err = p.FastReadField32767(buf[offset:])
  1529  				offset += l
  1530  				if err != nil {
  1531  					goto ReadFieldError
  1532  				}
  1533  			} else {
  1534  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1535  				offset += l
  1536  				if err != nil {
  1537  					goto SkipFieldError
  1538  				}
  1539  			}
  1540  		case 255:
  1541  			if fieldTypeId == thrift.STRUCT {
  1542  				l, err = p.FastReadField255(buf[offset:])
  1543  				offset += l
  1544  				if err != nil {
  1545  					goto ReadFieldError
  1546  				}
  1547  			} else {
  1548  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1549  				offset += l
  1550  				if err != nil {
  1551  					goto SkipFieldError
  1552  				}
  1553  			}
  1554  		default:
  1555  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  1556  			offset += l
  1557  			if err != nil {
  1558  				goto SkipFieldError
  1559  			}
  1560  		}
  1561  
  1562  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  1563  		offset += l
  1564  		if err != nil {
  1565  			goto ReadFieldEndError
  1566  		}
  1567  	}
  1568  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  1569  	offset += l
  1570  	if err != nil {
  1571  		goto ReadStructEndError
  1572  	}
  1573  
  1574  	if !issetPath {
  1575  		fieldId = 3
  1576  		goto RequiredFieldNotSetError
  1577  	}
  1578  	return offset, nil
  1579  ReadStructBeginError:
  1580  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  1581  ReadFieldBeginError:
  1582  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  1583  ReadFieldError:
  1584  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleReq[fieldId]), err)
  1585  SkipFieldError:
  1586  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  1587  ReadFieldEndError:
  1588  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  1589  ReadStructEndError:
  1590  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  1591  RequiredFieldNotSetError:
  1592  	return offset, thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field %s is not set", fieldIDToName_ExampleReq[fieldId]))
  1593  }
  1594  
  1595  func (p *ExampleReq) FastReadField1(buf []byte) (int, error) {
  1596  	offset := 0
  1597  
  1598  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  1599  		return offset, err
  1600  	} else {
  1601  		offset += l
  1602  		p.Msg = &v
  1603  
  1604  	}
  1605  	return offset, nil
  1606  }
  1607  
  1608  func (p *ExampleReq) FastReadField2(buf []byte) (int, error) {
  1609  	offset := 0
  1610  
  1611  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  1612  		return offset, err
  1613  	} else {
  1614  		offset += l
  1615  		p.Cookie = &v
  1616  
  1617  	}
  1618  	return offset, nil
  1619  }
  1620  
  1621  func (p *ExampleReq) FastReadField3(buf []byte) (int, error) {
  1622  	offset := 0
  1623  
  1624  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  1625  		return offset, err
  1626  	} else {
  1627  		offset += l
  1628  
  1629  		p.Path = v
  1630  
  1631  	}
  1632  	return offset, nil
  1633  }
  1634  
  1635  func (p *ExampleReq) FastReadField4(buf []byte) (int, error) {
  1636  	offset := 0
  1637  
  1638  	_, size, l, err := bthrift.Binary.ReadListBegin(buf[offset:])
  1639  	offset += l
  1640  	if err != nil {
  1641  		return offset, err
  1642  	}
  1643  	p.Query = make([]string, 0, size)
  1644  	for i := 0; i < size; i++ {
  1645  		var _elem string
  1646  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  1647  			return offset, err
  1648  		} else {
  1649  			offset += l
  1650  
  1651  			_elem = v
  1652  
  1653  		}
  1654  
  1655  		p.Query = append(p.Query, _elem)
  1656  	}
  1657  	if l, err := bthrift.Binary.ReadListEnd(buf[offset:]); err != nil {
  1658  		return offset, err
  1659  	} else {
  1660  		offset += l
  1661  	}
  1662  	return offset, nil
  1663  }
  1664  
  1665  func (p *ExampleReq) FastReadField5(buf []byte) (int, error) {
  1666  	offset := 0
  1667  
  1668  	if v, l, err := bthrift.Binary.ReadBool(buf[offset:]); err != nil {
  1669  		return offset, err
  1670  	} else {
  1671  		offset += l
  1672  		p.Header = &v
  1673  
  1674  	}
  1675  	return offset, nil
  1676  }
  1677  
  1678  func (p *ExampleReq) FastReadField6(buf []byte) (int, error) {
  1679  	offset := 0
  1680  
  1681  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
  1682  		return offset, err
  1683  	} else {
  1684  		offset += l
  1685  
  1686  		p.Code = v
  1687  
  1688  	}
  1689  	return offset, nil
  1690  }
  1691  
  1692  func (p *ExampleReq) FastReadField7(buf []byte) (int, error) {
  1693  	offset := 0
  1694  	p.InnerBase = NewInnerBase()
  1695  	if l, err := p.InnerBase.FastRead(buf[offset:]); err != nil {
  1696  		return offset, err
  1697  	} else {
  1698  		offset += l
  1699  	}
  1700  	return offset, nil
  1701  }
  1702  
  1703  func (p *ExampleReq) FastReadField8(buf []byte) (int, error) {
  1704  	offset := 0
  1705  
  1706  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  1707  		return offset, err
  1708  	} else {
  1709  		offset += l
  1710  
  1711  		p.RawUri = v
  1712  
  1713  	}
  1714  	return offset, nil
  1715  }
  1716  
  1717  func (p *ExampleReq) FastReadField32767(buf []byte) (int, error) {
  1718  	offset := 0
  1719  
  1720  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  1721  		return offset, err
  1722  	} else {
  1723  		offset += l
  1724  
  1725  		p.Subfix = v
  1726  
  1727  	}
  1728  	return offset, nil
  1729  }
  1730  
  1731  func (p *ExampleReq) FastReadField255(buf []byte) (int, error) {
  1732  	offset := 0
  1733  	p.Base = base.NewBase()
  1734  	if l, err := p.Base.FastRead(buf[offset:]); err != nil {
  1735  		return offset, err
  1736  	} else {
  1737  		offset += l
  1738  	}
  1739  	return offset, nil
  1740  }
  1741  
  1742  // for compatibility
  1743  func (p *ExampleReq) FastWrite(buf []byte) int {
  1744  	return 0
  1745  }
  1746  
  1747  func (p *ExampleReq) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1748  	offset := 0
  1749  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleReq")
  1750  	if p != nil {
  1751  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  1752  		offset += p.fastWriteField5(buf[offset:], binaryWriter)
  1753  		offset += p.fastWriteField6(buf[offset:], binaryWriter)
  1754  		offset += p.fastWriteField32767(buf[offset:], binaryWriter)
  1755  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  1756  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  1757  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
  1758  		offset += p.fastWriteField7(buf[offset:], binaryWriter)
  1759  		offset += p.fastWriteField8(buf[offset:], binaryWriter)
  1760  		offset += p.fastWriteField255(buf[offset:], binaryWriter)
  1761  	}
  1762  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  1763  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  1764  	return offset
  1765  }
  1766  
  1767  func (p *ExampleReq) BLength() int {
  1768  	l := 0
  1769  	l += bthrift.Binary.StructBeginLength("ExampleReq")
  1770  	if p != nil {
  1771  		l += p.field1Length()
  1772  		l += p.field2Length()
  1773  		l += p.field3Length()
  1774  		l += p.field4Length()
  1775  		l += p.field5Length()
  1776  		l += p.field6Length()
  1777  		l += p.field7Length()
  1778  		l += p.field8Length()
  1779  		l += p.field32767Length()
  1780  		l += p.field255Length()
  1781  	}
  1782  	l += bthrift.Binary.FieldStopLength()
  1783  	l += bthrift.Binary.StructEndLength()
  1784  	return l
  1785  }
  1786  
  1787  func (p *ExampleReq) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1788  	offset := 0
  1789  	if p.IsSetMsg() {
  1790  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Msg", thrift.STRING, 1)
  1791  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, *p.Msg)
  1792  
  1793  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1794  	}
  1795  	return offset
  1796  }
  1797  
  1798  func (p *ExampleReq) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1799  	offset := 0
  1800  	if p.IsSetCookie() {
  1801  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Cookie", thrift.DOUBLE, 2)
  1802  		offset += bthrift.Binary.WriteDouble(buf[offset:], *p.Cookie)
  1803  
  1804  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1805  	}
  1806  	return offset
  1807  }
  1808  
  1809  func (p *ExampleReq) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1810  	offset := 0
  1811  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Path", thrift.STRING, 3)
  1812  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Path)
  1813  
  1814  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1815  	return offset
  1816  }
  1817  
  1818  func (p *ExampleReq) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1819  	offset := 0
  1820  	if p.IsSetQuery() {
  1821  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Query", thrift.LIST, 4)
  1822  		offset += bthrift.Binary.WriteListBegin(buf[offset:], thrift.STRING, len(p.Query))
  1823  		for _, v := range p.Query {
  1824  			offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, v)
  1825  
  1826  		}
  1827  		offset += bthrift.Binary.WriteListEnd(buf[offset:])
  1828  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1829  	}
  1830  	return offset
  1831  }
  1832  
  1833  func (p *ExampleReq) fastWriteField5(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1834  	offset := 0
  1835  	if p.IsSetHeader() {
  1836  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Header", thrift.BOOL, 5)
  1837  		offset += bthrift.Binary.WriteBool(buf[offset:], *p.Header)
  1838  
  1839  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1840  	}
  1841  	return offset
  1842  }
  1843  
  1844  func (p *ExampleReq) fastWriteField6(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1845  	offset := 0
  1846  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Code", thrift.I64, 6)
  1847  	offset += bthrift.Binary.WriteI64(buf[offset:], p.Code)
  1848  
  1849  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1850  	return offset
  1851  }
  1852  
  1853  func (p *ExampleReq) fastWriteField7(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1854  	offset := 0
  1855  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "InnerBase", thrift.STRUCT, 7)
  1856  	offset += p.InnerBase.FastWriteNocopy(buf[offset:], binaryWriter)
  1857  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1858  	return offset
  1859  }
  1860  
  1861  func (p *ExampleReq) fastWriteField8(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1862  	offset := 0
  1863  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "RawUri", thrift.STRING, 8)
  1864  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.RawUri)
  1865  
  1866  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1867  	return offset
  1868  }
  1869  
  1870  func (p *ExampleReq) fastWriteField32767(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1871  	offset := 0
  1872  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Subfix", thrift.DOUBLE, 32767)
  1873  	offset += bthrift.Binary.WriteDouble(buf[offset:], p.Subfix)
  1874  
  1875  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1876  	return offset
  1877  }
  1878  
  1879  func (p *ExampleReq) fastWriteField255(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  1880  	offset := 0
  1881  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Base", thrift.STRUCT, 255)
  1882  	offset += p.Base.FastWriteNocopy(buf[offset:], binaryWriter)
  1883  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  1884  	return offset
  1885  }
  1886  
  1887  func (p *ExampleReq) field1Length() int {
  1888  	l := 0
  1889  	if p.IsSetMsg() {
  1890  		l += bthrift.Binary.FieldBeginLength("Msg", thrift.STRING, 1)
  1891  		l += bthrift.Binary.StringLengthNocopy(*p.Msg)
  1892  
  1893  		l += bthrift.Binary.FieldEndLength()
  1894  	}
  1895  	return l
  1896  }
  1897  
  1898  func (p *ExampleReq) field2Length() int {
  1899  	l := 0
  1900  	if p.IsSetCookie() {
  1901  		l += bthrift.Binary.FieldBeginLength("Cookie", thrift.DOUBLE, 2)
  1902  		l += bthrift.Binary.DoubleLength(*p.Cookie)
  1903  
  1904  		l += bthrift.Binary.FieldEndLength()
  1905  	}
  1906  	return l
  1907  }
  1908  
  1909  func (p *ExampleReq) field3Length() int {
  1910  	l := 0
  1911  	l += bthrift.Binary.FieldBeginLength("Path", thrift.STRING, 3)
  1912  	l += bthrift.Binary.StringLengthNocopy(p.Path)
  1913  
  1914  	l += bthrift.Binary.FieldEndLength()
  1915  	return l
  1916  }
  1917  
  1918  func (p *ExampleReq) field4Length() int {
  1919  	l := 0
  1920  	if p.IsSetQuery() {
  1921  		l += bthrift.Binary.FieldBeginLength("Query", thrift.LIST, 4)
  1922  		l += bthrift.Binary.ListBeginLength(thrift.STRING, len(p.Query))
  1923  		for _, v := range p.Query {
  1924  			l += bthrift.Binary.StringLengthNocopy(v)
  1925  
  1926  		}
  1927  		l += bthrift.Binary.ListEndLength()
  1928  		l += bthrift.Binary.FieldEndLength()
  1929  	}
  1930  	return l
  1931  }
  1932  
  1933  func (p *ExampleReq) field5Length() int {
  1934  	l := 0
  1935  	if p.IsSetHeader() {
  1936  		l += bthrift.Binary.FieldBeginLength("Header", thrift.BOOL, 5)
  1937  		l += bthrift.Binary.BoolLength(*p.Header)
  1938  
  1939  		l += bthrift.Binary.FieldEndLength()
  1940  	}
  1941  	return l
  1942  }
  1943  
  1944  func (p *ExampleReq) field6Length() int {
  1945  	l := 0
  1946  	l += bthrift.Binary.FieldBeginLength("Code", thrift.I64, 6)
  1947  	l += bthrift.Binary.I64Length(p.Code)
  1948  
  1949  	l += bthrift.Binary.FieldEndLength()
  1950  	return l
  1951  }
  1952  
  1953  func (p *ExampleReq) field7Length() int {
  1954  	l := 0
  1955  	l += bthrift.Binary.FieldBeginLength("InnerBase", thrift.STRUCT, 7)
  1956  	l += p.InnerBase.BLength()
  1957  	l += bthrift.Binary.FieldEndLength()
  1958  	return l
  1959  }
  1960  
  1961  func (p *ExampleReq) field8Length() int {
  1962  	l := 0
  1963  	l += bthrift.Binary.FieldBeginLength("RawUri", thrift.STRING, 8)
  1964  	l += bthrift.Binary.StringLengthNocopy(p.RawUri)
  1965  
  1966  	l += bthrift.Binary.FieldEndLength()
  1967  	return l
  1968  }
  1969  
  1970  func (p *ExampleReq) field32767Length() int {
  1971  	l := 0
  1972  	l += bthrift.Binary.FieldBeginLength("Subfix", thrift.DOUBLE, 32767)
  1973  	l += bthrift.Binary.DoubleLength(p.Subfix)
  1974  
  1975  	l += bthrift.Binary.FieldEndLength()
  1976  	return l
  1977  }
  1978  
  1979  func (p *ExampleReq) field255Length() int {
  1980  	l := 0
  1981  	l += bthrift.Binary.FieldBeginLength("Base", thrift.STRUCT, 255)
  1982  	l += p.Base.BLength()
  1983  	l += bthrift.Binary.FieldEndLength()
  1984  	return l
  1985  }
  1986  
  1987  func (p *ExampleResp) FastRead(buf []byte) (int, error) {
  1988  	var err error
  1989  	var offset int
  1990  	var l int
  1991  	var fieldTypeId thrift.TType
  1992  	var fieldId int16
  1993  	var issetStatus bool = false
  1994  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  1995  	offset += l
  1996  	if err != nil {
  1997  		goto ReadStructBeginError
  1998  	}
  1999  
  2000  	for {
  2001  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  2002  		offset += l
  2003  		if err != nil {
  2004  			goto ReadFieldBeginError
  2005  		}
  2006  		if fieldTypeId == thrift.STOP {
  2007  			break
  2008  		}
  2009  		switch fieldId {
  2010  		case 1:
  2011  			if fieldTypeId == thrift.STRING {
  2012  				l, err = p.FastReadField1(buf[offset:])
  2013  				offset += l
  2014  				if err != nil {
  2015  					goto ReadFieldError
  2016  				}
  2017  			} else {
  2018  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2019  				offset += l
  2020  				if err != nil {
  2021  					goto SkipFieldError
  2022  				}
  2023  			}
  2024  		case 2:
  2025  			if fieldTypeId == thrift.DOUBLE {
  2026  				l, err = p.FastReadField2(buf[offset:])
  2027  				offset += l
  2028  				if err != nil {
  2029  					goto ReadFieldError
  2030  				}
  2031  			} else {
  2032  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2033  				offset += l
  2034  				if err != nil {
  2035  					goto SkipFieldError
  2036  				}
  2037  			}
  2038  		case 3:
  2039  			if fieldTypeId == thrift.I32 {
  2040  				l, err = p.FastReadField3(buf[offset:])
  2041  				offset += l
  2042  				if err != nil {
  2043  					goto ReadFieldError
  2044  				}
  2045  				issetStatus = true
  2046  			} else {
  2047  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2048  				offset += l
  2049  				if err != nil {
  2050  					goto SkipFieldError
  2051  				}
  2052  			}
  2053  		case 4:
  2054  			if fieldTypeId == thrift.BOOL {
  2055  				l, err = p.FastReadField4(buf[offset:])
  2056  				offset += l
  2057  				if err != nil {
  2058  					goto ReadFieldError
  2059  				}
  2060  			} else {
  2061  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2062  				offset += l
  2063  				if err != nil {
  2064  					goto SkipFieldError
  2065  				}
  2066  			}
  2067  		case 6:
  2068  			if fieldTypeId == thrift.I64 {
  2069  				l, err = p.FastReadField6(buf[offset:])
  2070  				offset += l
  2071  				if err != nil {
  2072  					goto ReadFieldError
  2073  				}
  2074  			} else {
  2075  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2076  				offset += l
  2077  				if err != nil {
  2078  					goto SkipFieldError
  2079  				}
  2080  			}
  2081  		case 32767:
  2082  			if fieldTypeId == thrift.DOUBLE {
  2083  				l, err = p.FastReadField32767(buf[offset:])
  2084  				offset += l
  2085  				if err != nil {
  2086  					goto ReadFieldError
  2087  				}
  2088  			} else {
  2089  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2090  				offset += l
  2091  				if err != nil {
  2092  					goto SkipFieldError
  2093  				}
  2094  			}
  2095  		case 7:
  2096  			if fieldTypeId == thrift.STRUCT {
  2097  				l, err = p.FastReadField7(buf[offset:])
  2098  				offset += l
  2099  				if err != nil {
  2100  					goto ReadFieldError
  2101  				}
  2102  			} else {
  2103  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2104  				offset += l
  2105  				if err != nil {
  2106  					goto SkipFieldError
  2107  				}
  2108  			}
  2109  		case 255:
  2110  			if fieldTypeId == thrift.STRUCT {
  2111  				l, err = p.FastReadField255(buf[offset:])
  2112  				offset += l
  2113  				if err != nil {
  2114  					goto ReadFieldError
  2115  				}
  2116  			} else {
  2117  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2118  				offset += l
  2119  				if err != nil {
  2120  					goto SkipFieldError
  2121  				}
  2122  			}
  2123  		default:
  2124  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2125  			offset += l
  2126  			if err != nil {
  2127  				goto SkipFieldError
  2128  			}
  2129  		}
  2130  
  2131  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  2132  		offset += l
  2133  		if err != nil {
  2134  			goto ReadFieldEndError
  2135  		}
  2136  	}
  2137  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  2138  	offset += l
  2139  	if err != nil {
  2140  		goto ReadStructEndError
  2141  	}
  2142  
  2143  	if !issetStatus {
  2144  		fieldId = 3
  2145  		goto RequiredFieldNotSetError
  2146  	}
  2147  	return offset, nil
  2148  ReadStructBeginError:
  2149  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  2150  ReadFieldBeginError:
  2151  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  2152  ReadFieldError:
  2153  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleResp[fieldId]), err)
  2154  SkipFieldError:
  2155  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  2156  ReadFieldEndError:
  2157  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  2158  ReadStructEndError:
  2159  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  2160  RequiredFieldNotSetError:
  2161  	return offset, thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field %s is not set", fieldIDToName_ExampleResp[fieldId]))
  2162  }
  2163  
  2164  func (p *ExampleResp) FastReadField1(buf []byte) (int, error) {
  2165  	offset := 0
  2166  
  2167  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  2168  		return offset, err
  2169  	} else {
  2170  		offset += l
  2171  
  2172  		p.Msg = v
  2173  
  2174  	}
  2175  	return offset, nil
  2176  }
  2177  
  2178  func (p *ExampleResp) FastReadField2(buf []byte) (int, error) {
  2179  	offset := 0
  2180  
  2181  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  2182  		return offset, err
  2183  	} else {
  2184  		offset += l
  2185  		p.Cookie = &v
  2186  
  2187  	}
  2188  	return offset, nil
  2189  }
  2190  
  2191  func (p *ExampleResp) FastReadField3(buf []byte) (int, error) {
  2192  	offset := 0
  2193  
  2194  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  2195  		return offset, err
  2196  	} else {
  2197  		offset += l
  2198  
  2199  		p.Status = v
  2200  
  2201  	}
  2202  	return offset, nil
  2203  }
  2204  
  2205  func (p *ExampleResp) FastReadField4(buf []byte) (int, error) {
  2206  	offset := 0
  2207  
  2208  	if v, l, err := bthrift.Binary.ReadBool(buf[offset:]); err != nil {
  2209  		return offset, err
  2210  	} else {
  2211  		offset += l
  2212  		p.Header = &v
  2213  
  2214  	}
  2215  	return offset, nil
  2216  }
  2217  
  2218  func (p *ExampleResp) FastReadField6(buf []byte) (int, error) {
  2219  	offset := 0
  2220  
  2221  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
  2222  		return offset, err
  2223  	} else {
  2224  		offset += l
  2225  
  2226  		p.Code = v
  2227  
  2228  	}
  2229  	return offset, nil
  2230  }
  2231  
  2232  func (p *ExampleResp) FastReadField32767(buf []byte) (int, error) {
  2233  	offset := 0
  2234  
  2235  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  2236  		return offset, err
  2237  	} else {
  2238  		offset += l
  2239  
  2240  		p.Subfix = v
  2241  
  2242  	}
  2243  	return offset, nil
  2244  }
  2245  
  2246  func (p *ExampleResp) FastReadField7(buf []byte) (int, error) {
  2247  	offset := 0
  2248  	p.InnerBase = NewInnerBase()
  2249  	if l, err := p.InnerBase.FastRead(buf[offset:]); err != nil {
  2250  		return offset, err
  2251  	} else {
  2252  		offset += l
  2253  	}
  2254  	return offset, nil
  2255  }
  2256  
  2257  func (p *ExampleResp) FastReadField255(buf []byte) (int, error) {
  2258  	offset := 0
  2259  	p.BaseResp = base.NewBaseResp()
  2260  	if l, err := p.BaseResp.FastRead(buf[offset:]); err != nil {
  2261  		return offset, err
  2262  	} else {
  2263  		offset += l
  2264  	}
  2265  	return offset, nil
  2266  }
  2267  
  2268  // for compatibility
  2269  func (p *ExampleResp) FastWrite(buf []byte) int {
  2270  	return 0
  2271  }
  2272  
  2273  func (p *ExampleResp) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2274  	offset := 0
  2275  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleResp")
  2276  	if p != nil {
  2277  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  2278  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  2279  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
  2280  		offset += p.fastWriteField6(buf[offset:], binaryWriter)
  2281  		offset += p.fastWriteField32767(buf[offset:], binaryWriter)
  2282  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  2283  		offset += p.fastWriteField7(buf[offset:], binaryWriter)
  2284  		offset += p.fastWriteField255(buf[offset:], binaryWriter)
  2285  	}
  2286  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  2287  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  2288  	return offset
  2289  }
  2290  
  2291  func (p *ExampleResp) BLength() int {
  2292  	l := 0
  2293  	l += bthrift.Binary.StructBeginLength("ExampleResp")
  2294  	if p != nil {
  2295  		l += p.field1Length()
  2296  		l += p.field2Length()
  2297  		l += p.field3Length()
  2298  		l += p.field4Length()
  2299  		l += p.field6Length()
  2300  		l += p.field32767Length()
  2301  		l += p.field7Length()
  2302  		l += p.field255Length()
  2303  	}
  2304  	l += bthrift.Binary.FieldStopLength()
  2305  	l += bthrift.Binary.StructEndLength()
  2306  	return l
  2307  }
  2308  
  2309  func (p *ExampleResp) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2310  	offset := 0
  2311  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Msg", thrift.STRING, 1)
  2312  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Msg)
  2313  
  2314  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2315  	return offset
  2316  }
  2317  
  2318  func (p *ExampleResp) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2319  	offset := 0
  2320  	if p.IsSetCookie() {
  2321  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Cookie", thrift.DOUBLE, 2)
  2322  		offset += bthrift.Binary.WriteDouble(buf[offset:], *p.Cookie)
  2323  
  2324  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2325  	}
  2326  	return offset
  2327  }
  2328  
  2329  func (p *ExampleResp) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2330  	offset := 0
  2331  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Status", thrift.I32, 3)
  2332  	offset += bthrift.Binary.WriteI32(buf[offset:], p.Status)
  2333  
  2334  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2335  	return offset
  2336  }
  2337  
  2338  func (p *ExampleResp) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2339  	offset := 0
  2340  	if p.IsSetHeader() {
  2341  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Header", thrift.BOOL, 4)
  2342  		offset += bthrift.Binary.WriteBool(buf[offset:], *p.Header)
  2343  
  2344  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2345  	}
  2346  	return offset
  2347  }
  2348  
  2349  func (p *ExampleResp) fastWriteField6(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2350  	offset := 0
  2351  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Code", thrift.I64, 6)
  2352  	offset += bthrift.Binary.WriteI64(buf[offset:], p.Code)
  2353  
  2354  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2355  	return offset
  2356  }
  2357  
  2358  func (p *ExampleResp) fastWriteField32767(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2359  	offset := 0
  2360  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Subfix", thrift.DOUBLE, 32767)
  2361  	offset += bthrift.Binary.WriteDouble(buf[offset:], p.Subfix)
  2362  
  2363  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2364  	return offset
  2365  }
  2366  
  2367  func (p *ExampleResp) fastWriteField7(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2368  	offset := 0
  2369  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "InnerBase", thrift.STRUCT, 7)
  2370  	offset += p.InnerBase.FastWriteNocopy(buf[offset:], binaryWriter)
  2371  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2372  	return offset
  2373  }
  2374  
  2375  func (p *ExampleResp) fastWriteField255(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2376  	offset := 0
  2377  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "BaseResp", thrift.STRUCT, 255)
  2378  	offset += p.BaseResp.FastWriteNocopy(buf[offset:], binaryWriter)
  2379  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2380  	return offset
  2381  }
  2382  
  2383  func (p *ExampleResp) field1Length() int {
  2384  	l := 0
  2385  	l += bthrift.Binary.FieldBeginLength("Msg", thrift.STRING, 1)
  2386  	l += bthrift.Binary.StringLengthNocopy(p.Msg)
  2387  
  2388  	l += bthrift.Binary.FieldEndLength()
  2389  	return l
  2390  }
  2391  
  2392  func (p *ExampleResp) field2Length() int {
  2393  	l := 0
  2394  	if p.IsSetCookie() {
  2395  		l += bthrift.Binary.FieldBeginLength("Cookie", thrift.DOUBLE, 2)
  2396  		l += bthrift.Binary.DoubleLength(*p.Cookie)
  2397  
  2398  		l += bthrift.Binary.FieldEndLength()
  2399  	}
  2400  	return l
  2401  }
  2402  
  2403  func (p *ExampleResp) field3Length() int {
  2404  	l := 0
  2405  	l += bthrift.Binary.FieldBeginLength("Status", thrift.I32, 3)
  2406  	l += bthrift.Binary.I32Length(p.Status)
  2407  
  2408  	l += bthrift.Binary.FieldEndLength()
  2409  	return l
  2410  }
  2411  
  2412  func (p *ExampleResp) field4Length() int {
  2413  	l := 0
  2414  	if p.IsSetHeader() {
  2415  		l += bthrift.Binary.FieldBeginLength("Header", thrift.BOOL, 4)
  2416  		l += bthrift.Binary.BoolLength(*p.Header)
  2417  
  2418  		l += bthrift.Binary.FieldEndLength()
  2419  	}
  2420  	return l
  2421  }
  2422  
  2423  func (p *ExampleResp) field6Length() int {
  2424  	l := 0
  2425  	l += bthrift.Binary.FieldBeginLength("Code", thrift.I64, 6)
  2426  	l += bthrift.Binary.I64Length(p.Code)
  2427  
  2428  	l += bthrift.Binary.FieldEndLength()
  2429  	return l
  2430  }
  2431  
  2432  func (p *ExampleResp) field32767Length() int {
  2433  	l := 0
  2434  	l += bthrift.Binary.FieldBeginLength("Subfix", thrift.DOUBLE, 32767)
  2435  	l += bthrift.Binary.DoubleLength(p.Subfix)
  2436  
  2437  	l += bthrift.Binary.FieldEndLength()
  2438  	return l
  2439  }
  2440  
  2441  func (p *ExampleResp) field7Length() int {
  2442  	l := 0
  2443  	l += bthrift.Binary.FieldBeginLength("InnerBase", thrift.STRUCT, 7)
  2444  	l += p.InnerBase.BLength()
  2445  	l += bthrift.Binary.FieldEndLength()
  2446  	return l
  2447  }
  2448  
  2449  func (p *ExampleResp) field255Length() int {
  2450  	l := 0
  2451  	l += bthrift.Binary.FieldBeginLength("BaseResp", thrift.STRUCT, 255)
  2452  	l += p.BaseResp.BLength()
  2453  	l += bthrift.Binary.FieldEndLength()
  2454  	return l
  2455  }
  2456  
  2457  func (p *ExampleError) FastRead(buf []byte) (int, error) {
  2458  	var err error
  2459  	var offset int
  2460  	var l int
  2461  	var fieldTypeId thrift.TType
  2462  	var fieldId int16
  2463  	var issetQuery bool = false
  2464  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  2465  	offset += l
  2466  	if err != nil {
  2467  		goto ReadStructBeginError
  2468  	}
  2469  
  2470  	for {
  2471  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  2472  		offset += l
  2473  		if err != nil {
  2474  			goto ReadFieldBeginError
  2475  		}
  2476  		if fieldTypeId == thrift.STOP {
  2477  			break
  2478  		}
  2479  		switch fieldId {
  2480  		case 1:
  2481  			if fieldTypeId == thrift.MAP {
  2482  				l, err = p.FastReadField1(buf[offset:])
  2483  				offset += l
  2484  				if err != nil {
  2485  					goto ReadFieldError
  2486  				}
  2487  			} else {
  2488  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2489  				offset += l
  2490  				if err != nil {
  2491  					goto SkipFieldError
  2492  				}
  2493  			}
  2494  		case 2:
  2495  			if fieldTypeId == thrift.STRING {
  2496  				l, err = p.FastReadField2(buf[offset:])
  2497  				offset += l
  2498  				if err != nil {
  2499  					goto ReadFieldError
  2500  				}
  2501  			} else {
  2502  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2503  				offset += l
  2504  				if err != nil {
  2505  					goto SkipFieldError
  2506  				}
  2507  			}
  2508  		case 3:
  2509  			if fieldTypeId == thrift.STRING {
  2510  				l, err = p.FastReadField3(buf[offset:])
  2511  				offset += l
  2512  				if err != nil {
  2513  					goto ReadFieldError
  2514  				}
  2515  				issetQuery = true
  2516  			} else {
  2517  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2518  				offset += l
  2519  				if err != nil {
  2520  					goto SkipFieldError
  2521  				}
  2522  			}
  2523  		case 4:
  2524  			if fieldTypeId == thrift.STRING {
  2525  				l, err = p.FastReadField4(buf[offset:])
  2526  				offset += l
  2527  				if err != nil {
  2528  					goto ReadFieldError
  2529  				}
  2530  			} else {
  2531  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2532  				offset += l
  2533  				if err != nil {
  2534  					goto SkipFieldError
  2535  				}
  2536  			}
  2537  		case 5:
  2538  			if fieldTypeId == thrift.I32 {
  2539  				l, err = p.FastReadField5(buf[offset:])
  2540  				offset += l
  2541  				if err != nil {
  2542  					goto ReadFieldError
  2543  				}
  2544  			} else {
  2545  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2546  				offset += l
  2547  				if err != nil {
  2548  					goto SkipFieldError
  2549  				}
  2550  			}
  2551  		default:
  2552  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2553  			offset += l
  2554  			if err != nil {
  2555  				goto SkipFieldError
  2556  			}
  2557  		}
  2558  
  2559  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  2560  		offset += l
  2561  		if err != nil {
  2562  			goto ReadFieldEndError
  2563  		}
  2564  	}
  2565  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  2566  	offset += l
  2567  	if err != nil {
  2568  		goto ReadStructEndError
  2569  	}
  2570  
  2571  	if !issetQuery {
  2572  		fieldId = 3
  2573  		goto RequiredFieldNotSetError
  2574  	}
  2575  	return offset, nil
  2576  ReadStructBeginError:
  2577  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  2578  ReadFieldBeginError:
  2579  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  2580  ReadFieldError:
  2581  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleError[fieldId]), err)
  2582  SkipFieldError:
  2583  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  2584  ReadFieldEndError:
  2585  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  2586  ReadStructEndError:
  2587  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  2588  RequiredFieldNotSetError:
  2589  	return offset, thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field %s is not set", fieldIDToName_ExampleError[fieldId]))
  2590  }
  2591  
  2592  func (p *ExampleError) FastReadField1(buf []byte) (int, error) {
  2593  	offset := 0
  2594  
  2595  	_, _, size, l, err := bthrift.Binary.ReadMapBegin(buf[offset:])
  2596  	offset += l
  2597  	if err != nil {
  2598  		return offset, err
  2599  	}
  2600  	p.MapInnerBaseInnerBase = make(map[*InnerBase]*InnerBase, size)
  2601  	for i := 0; i < size; i++ {
  2602  		_key := NewInnerBase()
  2603  		if l, err := _key.FastRead(buf[offset:]); err != nil {
  2604  			return offset, err
  2605  		} else {
  2606  			offset += l
  2607  		}
  2608  		_val := NewInnerBase()
  2609  		if l, err := _val.FastRead(buf[offset:]); err != nil {
  2610  			return offset, err
  2611  		} else {
  2612  			offset += l
  2613  		}
  2614  
  2615  		p.MapInnerBaseInnerBase[_key] = _val
  2616  	}
  2617  	if l, err := bthrift.Binary.ReadMapEnd(buf[offset:]); err != nil {
  2618  		return offset, err
  2619  	} else {
  2620  		offset += l
  2621  	}
  2622  	return offset, nil
  2623  }
  2624  
  2625  func (p *ExampleError) FastReadField2(buf []byte) (int, error) {
  2626  	offset := 0
  2627  
  2628  	if v, l, err := bthrift.Binary.ReadBinary(buf[offset:]); err != nil {
  2629  		return offset, err
  2630  	} else {
  2631  		offset += l
  2632  
  2633  		p.Base64 = []byte(v)
  2634  
  2635  	}
  2636  	return offset, nil
  2637  }
  2638  
  2639  func (p *ExampleError) FastReadField3(buf []byte) (int, error) {
  2640  	offset := 0
  2641  
  2642  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  2643  		return offset, err
  2644  	} else {
  2645  		offset += l
  2646  
  2647  		p.Query = v
  2648  
  2649  	}
  2650  	return offset, nil
  2651  }
  2652  
  2653  func (p *ExampleError) FastReadField4(buf []byte) (int, error) {
  2654  	offset := 0
  2655  
  2656  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  2657  		return offset, err
  2658  	} else {
  2659  		offset += l
  2660  
  2661  		p.Header = v
  2662  
  2663  	}
  2664  	return offset, nil
  2665  }
  2666  
  2667  func (p *ExampleError) FastReadField5(buf []byte) (int, error) {
  2668  	offset := 0
  2669  
  2670  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  2671  		return offset, err
  2672  	} else {
  2673  		offset += l
  2674  
  2675  		p.Q2 = v
  2676  
  2677  	}
  2678  	return offset, nil
  2679  }
  2680  
  2681  // for compatibility
  2682  func (p *ExampleError) FastWrite(buf []byte) int {
  2683  	return 0
  2684  }
  2685  
  2686  func (p *ExampleError) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2687  	offset := 0
  2688  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleError")
  2689  	if p != nil {
  2690  		offset += p.fastWriteField5(buf[offset:], binaryWriter)
  2691  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  2692  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  2693  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  2694  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
  2695  	}
  2696  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  2697  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  2698  	return offset
  2699  }
  2700  
  2701  func (p *ExampleError) BLength() int {
  2702  	l := 0
  2703  	l += bthrift.Binary.StructBeginLength("ExampleError")
  2704  	if p != nil {
  2705  		l += p.field1Length()
  2706  		l += p.field2Length()
  2707  		l += p.field3Length()
  2708  		l += p.field4Length()
  2709  		l += p.field5Length()
  2710  	}
  2711  	l += bthrift.Binary.FieldStopLength()
  2712  	l += bthrift.Binary.StructEndLength()
  2713  	return l
  2714  }
  2715  
  2716  func (p *ExampleError) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2717  	offset := 0
  2718  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "MapInnerBaseInnerBase", thrift.MAP, 1)
  2719  	offset += bthrift.Binary.WriteMapBegin(buf[offset:], thrift.STRUCT, thrift.STRUCT, len(p.MapInnerBaseInnerBase))
  2720  	for k, v := range p.MapInnerBaseInnerBase {
  2721  
  2722  		offset += k.FastWriteNocopy(buf[offset:], binaryWriter)
  2723  
  2724  		offset += v.FastWriteNocopy(buf[offset:], binaryWriter)
  2725  	}
  2726  	offset += bthrift.Binary.WriteMapEnd(buf[offset:])
  2727  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2728  	return offset
  2729  }
  2730  
  2731  func (p *ExampleError) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2732  	offset := 0
  2733  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Base64", thrift.STRING, 2)
  2734  	offset += bthrift.Binary.WriteBinaryNocopy(buf[offset:], binaryWriter, []byte(p.Base64))
  2735  
  2736  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2737  	return offset
  2738  }
  2739  
  2740  func (p *ExampleError) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2741  	offset := 0
  2742  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Query", thrift.STRING, 3)
  2743  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Query)
  2744  
  2745  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2746  	return offset
  2747  }
  2748  
  2749  func (p *ExampleError) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2750  	offset := 0
  2751  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Header", thrift.STRING, 4)
  2752  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Header)
  2753  
  2754  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2755  	return offset
  2756  }
  2757  
  2758  func (p *ExampleError) fastWriteField5(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2759  	offset := 0
  2760  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Q2", thrift.I32, 5)
  2761  	offset += bthrift.Binary.WriteI32(buf[offset:], p.Q2)
  2762  
  2763  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2764  	return offset
  2765  }
  2766  
  2767  func (p *ExampleError) field1Length() int {
  2768  	l := 0
  2769  	l += bthrift.Binary.FieldBeginLength("MapInnerBaseInnerBase", thrift.MAP, 1)
  2770  	l += bthrift.Binary.MapBeginLength(thrift.STRUCT, thrift.STRUCT, len(p.MapInnerBaseInnerBase))
  2771  	for k, v := range p.MapInnerBaseInnerBase {
  2772  
  2773  		l += k.BLength()
  2774  
  2775  		l += v.BLength()
  2776  	}
  2777  	l += bthrift.Binary.MapEndLength()
  2778  	l += bthrift.Binary.FieldEndLength()
  2779  	return l
  2780  }
  2781  
  2782  func (p *ExampleError) field2Length() int {
  2783  	l := 0
  2784  	l += bthrift.Binary.FieldBeginLength("Base64", thrift.STRING, 2)
  2785  	l += bthrift.Binary.BinaryLengthNocopy([]byte(p.Base64))
  2786  
  2787  	l += bthrift.Binary.FieldEndLength()
  2788  	return l
  2789  }
  2790  
  2791  func (p *ExampleError) field3Length() int {
  2792  	l := 0
  2793  	l += bthrift.Binary.FieldBeginLength("Query", thrift.STRING, 3)
  2794  	l += bthrift.Binary.StringLengthNocopy(p.Query)
  2795  
  2796  	l += bthrift.Binary.FieldEndLength()
  2797  	return l
  2798  }
  2799  
  2800  func (p *ExampleError) field4Length() int {
  2801  	l := 0
  2802  	l += bthrift.Binary.FieldBeginLength("Header", thrift.STRING, 4)
  2803  	l += bthrift.Binary.StringLengthNocopy(p.Header)
  2804  
  2805  	l += bthrift.Binary.FieldEndLength()
  2806  	return l
  2807  }
  2808  
  2809  func (p *ExampleError) field5Length() int {
  2810  	l := 0
  2811  	l += bthrift.Binary.FieldBeginLength("Q2", thrift.I32, 5)
  2812  	l += bthrift.Binary.I32Length(p.Q2)
  2813  
  2814  	l += bthrift.Binary.FieldEndLength()
  2815  	return l
  2816  }
  2817  
  2818  func (p *ExampleErrorResp) FastRead(buf []byte) (int, error) {
  2819  	var err error
  2820  	var offset int
  2821  	var l int
  2822  	var fieldTypeId thrift.TType
  2823  	var fieldId int16
  2824  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  2825  	offset += l
  2826  	if err != nil {
  2827  		goto ReadStructBeginError
  2828  	}
  2829  
  2830  	for {
  2831  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  2832  		offset += l
  2833  		if err != nil {
  2834  			goto ReadFieldBeginError
  2835  		}
  2836  		if fieldTypeId == thrift.STOP {
  2837  			break
  2838  		}
  2839  		switch fieldId {
  2840  		case 2:
  2841  			if fieldTypeId == thrift.I64 {
  2842  				l, err = p.FastReadField2(buf[offset:])
  2843  				offset += l
  2844  				if err != nil {
  2845  					goto ReadFieldError
  2846  				}
  2847  			} else {
  2848  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2849  				offset += l
  2850  				if err != nil {
  2851  					goto SkipFieldError
  2852  				}
  2853  			}
  2854  		case 4:
  2855  			if fieldTypeId == thrift.STRING {
  2856  				l, err = p.FastReadField4(buf[offset:])
  2857  				offset += l
  2858  				if err != nil {
  2859  					goto ReadFieldError
  2860  				}
  2861  			} else {
  2862  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2863  				offset += l
  2864  				if err != nil {
  2865  					goto SkipFieldError
  2866  				}
  2867  			}
  2868  		default:
  2869  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  2870  			offset += l
  2871  			if err != nil {
  2872  				goto SkipFieldError
  2873  			}
  2874  		}
  2875  
  2876  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  2877  		offset += l
  2878  		if err != nil {
  2879  			goto ReadFieldEndError
  2880  		}
  2881  	}
  2882  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  2883  	offset += l
  2884  	if err != nil {
  2885  		goto ReadStructEndError
  2886  	}
  2887  
  2888  	return offset, nil
  2889  ReadStructBeginError:
  2890  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  2891  ReadFieldBeginError:
  2892  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  2893  ReadFieldError:
  2894  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleErrorResp[fieldId]), err)
  2895  SkipFieldError:
  2896  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  2897  ReadFieldEndError:
  2898  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  2899  ReadStructEndError:
  2900  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  2901  }
  2902  
  2903  func (p *ExampleErrorResp) FastReadField2(buf []byte) (int, error) {
  2904  	offset := 0
  2905  
  2906  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
  2907  		return offset, err
  2908  	} else {
  2909  		offset += l
  2910  
  2911  		p.Int64 = v
  2912  
  2913  	}
  2914  	return offset, nil
  2915  }
  2916  
  2917  func (p *ExampleErrorResp) FastReadField4(buf []byte) (int, error) {
  2918  	offset := 0
  2919  
  2920  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  2921  		return offset, err
  2922  	} else {
  2923  		offset += l
  2924  
  2925  		p.Xjson = v
  2926  
  2927  	}
  2928  	return offset, nil
  2929  }
  2930  
  2931  // for compatibility
  2932  func (p *ExampleErrorResp) FastWrite(buf []byte) int {
  2933  	return 0
  2934  }
  2935  
  2936  func (p *ExampleErrorResp) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2937  	offset := 0
  2938  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleErrorResp")
  2939  	if p != nil {
  2940  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  2941  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
  2942  	}
  2943  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  2944  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  2945  	return offset
  2946  }
  2947  
  2948  func (p *ExampleErrorResp) BLength() int {
  2949  	l := 0
  2950  	l += bthrift.Binary.StructBeginLength("ExampleErrorResp")
  2951  	if p != nil {
  2952  		l += p.field2Length()
  2953  		l += p.field4Length()
  2954  	}
  2955  	l += bthrift.Binary.FieldStopLength()
  2956  	l += bthrift.Binary.StructEndLength()
  2957  	return l
  2958  }
  2959  
  2960  func (p *ExampleErrorResp) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2961  	offset := 0
  2962  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Int64", thrift.I64, 2)
  2963  	offset += bthrift.Binary.WriteI64(buf[offset:], p.Int64)
  2964  
  2965  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2966  	return offset
  2967  }
  2968  
  2969  func (p *ExampleErrorResp) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  2970  	offset := 0
  2971  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Xjson", thrift.STRING, 4)
  2972  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Xjson)
  2973  
  2974  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  2975  	return offset
  2976  }
  2977  
  2978  func (p *ExampleErrorResp) field2Length() int {
  2979  	l := 0
  2980  	l += bthrift.Binary.FieldBeginLength("Int64", thrift.I64, 2)
  2981  	l += bthrift.Binary.I64Length(p.Int64)
  2982  
  2983  	l += bthrift.Binary.FieldEndLength()
  2984  	return l
  2985  }
  2986  
  2987  func (p *ExampleErrorResp) field4Length() int {
  2988  	l := 0
  2989  	l += bthrift.Binary.FieldBeginLength("Xjson", thrift.STRING, 4)
  2990  	l += bthrift.Binary.StringLengthNocopy(p.Xjson)
  2991  
  2992  	l += bthrift.Binary.FieldEndLength()
  2993  	return l
  2994  }
  2995  
  2996  func (p *ExampleInt2Float) FastRead(buf []byte) (int, error) {
  2997  	var err error
  2998  	var offset int
  2999  	var l int
  3000  	var fieldTypeId thrift.TType
  3001  	var fieldId int16
  3002  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  3003  	offset += l
  3004  	if err != nil {
  3005  		goto ReadStructBeginError
  3006  	}
  3007  
  3008  	for {
  3009  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  3010  		offset += l
  3011  		if err != nil {
  3012  			goto ReadFieldBeginError
  3013  		}
  3014  		if fieldTypeId == thrift.STOP {
  3015  			break
  3016  		}
  3017  		switch fieldId {
  3018  		case 1:
  3019  			if fieldTypeId == thrift.I32 {
  3020  				l, err = p.FastReadField1(buf[offset:])
  3021  				offset += l
  3022  				if err != nil {
  3023  					goto ReadFieldError
  3024  				}
  3025  			} else {
  3026  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3027  				offset += l
  3028  				if err != nil {
  3029  					goto SkipFieldError
  3030  				}
  3031  			}
  3032  		case 2:
  3033  			if fieldTypeId == thrift.DOUBLE {
  3034  				l, err = p.FastReadField2(buf[offset:])
  3035  				offset += l
  3036  				if err != nil {
  3037  					goto ReadFieldError
  3038  				}
  3039  			} else {
  3040  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3041  				offset += l
  3042  				if err != nil {
  3043  					goto SkipFieldError
  3044  				}
  3045  			}
  3046  		case 3:
  3047  			if fieldTypeId == thrift.STRING {
  3048  				l, err = p.FastReadField3(buf[offset:])
  3049  				offset += l
  3050  				if err != nil {
  3051  					goto ReadFieldError
  3052  				}
  3053  			} else {
  3054  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3055  				offset += l
  3056  				if err != nil {
  3057  					goto SkipFieldError
  3058  				}
  3059  			}
  3060  		case 4:
  3061  			if fieldTypeId == thrift.I64 {
  3062  				l, err = p.FastReadField4(buf[offset:])
  3063  				offset += l
  3064  				if err != nil {
  3065  					goto ReadFieldError
  3066  				}
  3067  			} else {
  3068  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3069  				offset += l
  3070  				if err != nil {
  3071  					goto SkipFieldError
  3072  				}
  3073  			}
  3074  		case 32767:
  3075  			if fieldTypeId == thrift.DOUBLE {
  3076  				l, err = p.FastReadField32767(buf[offset:])
  3077  				offset += l
  3078  				if err != nil {
  3079  					goto ReadFieldError
  3080  				}
  3081  			} else {
  3082  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3083  				offset += l
  3084  				if err != nil {
  3085  					goto SkipFieldError
  3086  				}
  3087  			}
  3088  		default:
  3089  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3090  			offset += l
  3091  			if err != nil {
  3092  				goto SkipFieldError
  3093  			}
  3094  		}
  3095  
  3096  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  3097  		offset += l
  3098  		if err != nil {
  3099  			goto ReadFieldEndError
  3100  		}
  3101  	}
  3102  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  3103  	offset += l
  3104  	if err != nil {
  3105  		goto ReadStructEndError
  3106  	}
  3107  
  3108  	return offset, nil
  3109  ReadStructBeginError:
  3110  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  3111  ReadFieldBeginError:
  3112  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  3113  ReadFieldError:
  3114  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleInt2Float[fieldId]), err)
  3115  SkipFieldError:
  3116  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  3117  ReadFieldEndError:
  3118  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  3119  ReadStructEndError:
  3120  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  3121  }
  3122  
  3123  func (p *ExampleInt2Float) FastReadField1(buf []byte) (int, error) {
  3124  	offset := 0
  3125  
  3126  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  3127  		return offset, err
  3128  	} else {
  3129  		offset += l
  3130  
  3131  		p.Int32 = v
  3132  
  3133  	}
  3134  	return offset, nil
  3135  }
  3136  
  3137  func (p *ExampleInt2Float) FastReadField2(buf []byte) (int, error) {
  3138  	offset := 0
  3139  
  3140  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  3141  		return offset, err
  3142  	} else {
  3143  		offset += l
  3144  
  3145  		p.Float64 = v
  3146  
  3147  	}
  3148  	return offset, nil
  3149  }
  3150  
  3151  func (p *ExampleInt2Float) FastReadField3(buf []byte) (int, error) {
  3152  	offset := 0
  3153  
  3154  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  3155  		return offset, err
  3156  	} else {
  3157  		offset += l
  3158  
  3159  		p.String_ = v
  3160  
  3161  	}
  3162  	return offset, nil
  3163  }
  3164  
  3165  func (p *ExampleInt2Float) FastReadField4(buf []byte) (int, error) {
  3166  	offset := 0
  3167  
  3168  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
  3169  		return offset, err
  3170  	} else {
  3171  		offset += l
  3172  
  3173  		p.Int64 = v
  3174  
  3175  	}
  3176  	return offset, nil
  3177  }
  3178  
  3179  func (p *ExampleInt2Float) FastReadField32767(buf []byte) (int, error) {
  3180  	offset := 0
  3181  
  3182  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  3183  		return offset, err
  3184  	} else {
  3185  		offset += l
  3186  
  3187  		p.Subfix = v
  3188  
  3189  	}
  3190  	return offset, nil
  3191  }
  3192  
  3193  // for compatibility
  3194  func (p *ExampleInt2Float) FastWrite(buf []byte) int {
  3195  	return 0
  3196  }
  3197  
  3198  func (p *ExampleInt2Float) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3199  	offset := 0
  3200  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleInt2Float")
  3201  	if p != nil {
  3202  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  3203  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  3204  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
  3205  		offset += p.fastWriteField32767(buf[offset:], binaryWriter)
  3206  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  3207  	}
  3208  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  3209  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  3210  	return offset
  3211  }
  3212  
  3213  func (p *ExampleInt2Float) BLength() int {
  3214  	l := 0
  3215  	l += bthrift.Binary.StructBeginLength("ExampleInt2Float")
  3216  	if p != nil {
  3217  		l += p.field1Length()
  3218  		l += p.field2Length()
  3219  		l += p.field3Length()
  3220  		l += p.field4Length()
  3221  		l += p.field32767Length()
  3222  	}
  3223  	l += bthrift.Binary.FieldStopLength()
  3224  	l += bthrift.Binary.StructEndLength()
  3225  	return l
  3226  }
  3227  
  3228  func (p *ExampleInt2Float) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3229  	offset := 0
  3230  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Int32", thrift.I32, 1)
  3231  	offset += bthrift.Binary.WriteI32(buf[offset:], p.Int32)
  3232  
  3233  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3234  	return offset
  3235  }
  3236  
  3237  func (p *ExampleInt2Float) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3238  	offset := 0
  3239  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Float64", thrift.DOUBLE, 2)
  3240  	offset += bthrift.Binary.WriteDouble(buf[offset:], p.Float64)
  3241  
  3242  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3243  	return offset
  3244  }
  3245  
  3246  func (p *ExampleInt2Float) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3247  	offset := 0
  3248  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "String", thrift.STRING, 3)
  3249  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.String_)
  3250  
  3251  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3252  	return offset
  3253  }
  3254  
  3255  func (p *ExampleInt2Float) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3256  	offset := 0
  3257  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Int64", thrift.I64, 4)
  3258  	offset += bthrift.Binary.WriteI64(buf[offset:], p.Int64)
  3259  
  3260  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3261  	return offset
  3262  }
  3263  
  3264  func (p *ExampleInt2Float) fastWriteField32767(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3265  	offset := 0
  3266  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Subfix", thrift.DOUBLE, 32767)
  3267  	offset += bthrift.Binary.WriteDouble(buf[offset:], p.Subfix)
  3268  
  3269  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3270  	return offset
  3271  }
  3272  
  3273  func (p *ExampleInt2Float) field1Length() int {
  3274  	l := 0
  3275  	l += bthrift.Binary.FieldBeginLength("Int32", thrift.I32, 1)
  3276  	l += bthrift.Binary.I32Length(p.Int32)
  3277  
  3278  	l += bthrift.Binary.FieldEndLength()
  3279  	return l
  3280  }
  3281  
  3282  func (p *ExampleInt2Float) field2Length() int {
  3283  	l := 0
  3284  	l += bthrift.Binary.FieldBeginLength("Float64", thrift.DOUBLE, 2)
  3285  	l += bthrift.Binary.DoubleLength(p.Float64)
  3286  
  3287  	l += bthrift.Binary.FieldEndLength()
  3288  	return l
  3289  }
  3290  
  3291  func (p *ExampleInt2Float) field3Length() int {
  3292  	l := 0
  3293  	l += bthrift.Binary.FieldBeginLength("String", thrift.STRING, 3)
  3294  	l += bthrift.Binary.StringLengthNocopy(p.String_)
  3295  
  3296  	l += bthrift.Binary.FieldEndLength()
  3297  	return l
  3298  }
  3299  
  3300  func (p *ExampleInt2Float) field4Length() int {
  3301  	l := 0
  3302  	l += bthrift.Binary.FieldBeginLength("Int64", thrift.I64, 4)
  3303  	l += bthrift.Binary.I64Length(p.Int64)
  3304  
  3305  	l += bthrift.Binary.FieldEndLength()
  3306  	return l
  3307  }
  3308  
  3309  func (p *ExampleInt2Float) field32767Length() int {
  3310  	l := 0
  3311  	l += bthrift.Binary.FieldBeginLength("Subfix", thrift.DOUBLE, 32767)
  3312  	l += bthrift.Binary.DoubleLength(p.Subfix)
  3313  
  3314  	l += bthrift.Binary.FieldEndLength()
  3315  	return l
  3316  }
  3317  
  3318  func (p *JSONObject) FastRead(buf []byte) (int, error) {
  3319  	var err error
  3320  	var offset int
  3321  	var l int
  3322  	var fieldTypeId thrift.TType
  3323  	var fieldId int16
  3324  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  3325  	offset += l
  3326  	if err != nil {
  3327  		goto ReadStructBeginError
  3328  	}
  3329  
  3330  	for {
  3331  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  3332  		offset += l
  3333  		if err != nil {
  3334  			goto ReadFieldBeginError
  3335  		}
  3336  		if fieldTypeId == thrift.STOP {
  3337  			break
  3338  		}
  3339  		switch fieldId {
  3340  		case 1:
  3341  			if fieldTypeId == thrift.STRING {
  3342  				l, err = p.FastReadField1(buf[offset:])
  3343  				offset += l
  3344  				if err != nil {
  3345  					goto ReadFieldError
  3346  				}
  3347  			} else {
  3348  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3349  				offset += l
  3350  				if err != nil {
  3351  					goto SkipFieldError
  3352  				}
  3353  			}
  3354  		case 2:
  3355  			if fieldTypeId == thrift.BYTE {
  3356  				l, err = p.FastReadField2(buf[offset:])
  3357  				offset += l
  3358  				if err != nil {
  3359  					goto ReadFieldError
  3360  				}
  3361  			} else {
  3362  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3363  				offset += l
  3364  				if err != nil {
  3365  					goto SkipFieldError
  3366  				}
  3367  			}
  3368  		default:
  3369  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3370  			offset += l
  3371  			if err != nil {
  3372  				goto SkipFieldError
  3373  			}
  3374  		}
  3375  
  3376  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  3377  		offset += l
  3378  		if err != nil {
  3379  			goto ReadFieldEndError
  3380  		}
  3381  	}
  3382  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  3383  	offset += l
  3384  	if err != nil {
  3385  		goto ReadStructEndError
  3386  	}
  3387  
  3388  	return offset, nil
  3389  ReadStructBeginError:
  3390  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  3391  ReadFieldBeginError:
  3392  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  3393  ReadFieldError:
  3394  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_JSONObject[fieldId]), err)
  3395  SkipFieldError:
  3396  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  3397  ReadFieldEndError:
  3398  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  3399  ReadStructEndError:
  3400  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  3401  }
  3402  
  3403  func (p *JSONObject) FastReadField1(buf []byte) (int, error) {
  3404  	offset := 0
  3405  
  3406  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  3407  		return offset, err
  3408  	} else {
  3409  		offset += l
  3410  
  3411  		p.A = v
  3412  
  3413  	}
  3414  	return offset, nil
  3415  }
  3416  
  3417  func (p *JSONObject) FastReadField2(buf []byte) (int, error) {
  3418  	offset := 0
  3419  
  3420  	if v, l, err := bthrift.Binary.ReadByte(buf[offset:]); err != nil {
  3421  		return offset, err
  3422  	} else {
  3423  		offset += l
  3424  
  3425  		p.B = v
  3426  
  3427  	}
  3428  	return offset, nil
  3429  }
  3430  
  3431  // for compatibility
  3432  func (p *JSONObject) FastWrite(buf []byte) int {
  3433  	return 0
  3434  }
  3435  
  3436  func (p *JSONObject) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3437  	offset := 0
  3438  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "JSONObject")
  3439  	if p != nil {
  3440  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  3441  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  3442  	}
  3443  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  3444  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  3445  	return offset
  3446  }
  3447  
  3448  func (p *JSONObject) BLength() int {
  3449  	l := 0
  3450  	l += bthrift.Binary.StructBeginLength("JSONObject")
  3451  	if p != nil {
  3452  		l += p.field1Length()
  3453  		l += p.field2Length()
  3454  	}
  3455  	l += bthrift.Binary.FieldStopLength()
  3456  	l += bthrift.Binary.StructEndLength()
  3457  	return l
  3458  }
  3459  
  3460  func (p *JSONObject) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3461  	offset := 0
  3462  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "A", thrift.STRING, 1)
  3463  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.A)
  3464  
  3465  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3466  	return offset
  3467  }
  3468  
  3469  func (p *JSONObject) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3470  	offset := 0
  3471  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "B", thrift.BYTE, 2)
  3472  	offset += bthrift.Binary.WriteByte(buf[offset:], p.B)
  3473  
  3474  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3475  	return offset
  3476  }
  3477  
  3478  func (p *JSONObject) field1Length() int {
  3479  	l := 0
  3480  	l += bthrift.Binary.FieldBeginLength("A", thrift.STRING, 1)
  3481  	l += bthrift.Binary.StringLengthNocopy(p.A)
  3482  
  3483  	l += bthrift.Binary.FieldEndLength()
  3484  	return l
  3485  }
  3486  
  3487  func (p *JSONObject) field2Length() int {
  3488  	l := 0
  3489  	l += bthrift.Binary.FieldBeginLength("B", thrift.BYTE, 2)
  3490  	l += bthrift.Binary.ByteLength(p.B)
  3491  
  3492  	l += bthrift.Binary.FieldEndLength()
  3493  	return l
  3494  }
  3495  
  3496  func (p *ExampleJSONString) FastRead(buf []byte) (int, error) {
  3497  	var err error
  3498  	var offset int
  3499  	var l int
  3500  	var fieldTypeId thrift.TType
  3501  	var fieldId int16
  3502  	var issetQuery2 bool = false
  3503  	var issetHeader bool = false
  3504  	var issetHeader2 bool = false
  3505  	var issetCookie2 bool = false
  3506  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  3507  	offset += l
  3508  	if err != nil {
  3509  		goto ReadStructBeginError
  3510  	}
  3511  
  3512  	for {
  3513  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  3514  		offset += l
  3515  		if err != nil {
  3516  			goto ReadFieldBeginError
  3517  		}
  3518  		if fieldTypeId == thrift.STOP {
  3519  			break
  3520  		}
  3521  		switch fieldId {
  3522  		case 1:
  3523  			if fieldTypeId == thrift.STRUCT {
  3524  				l, err = p.FastReadField1(buf[offset:])
  3525  				offset += l
  3526  				if err != nil {
  3527  					goto ReadFieldError
  3528  				}
  3529  			} else {
  3530  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3531  				offset += l
  3532  				if err != nil {
  3533  					goto SkipFieldError
  3534  				}
  3535  			}
  3536  		case 2:
  3537  			if fieldTypeId == thrift.LIST {
  3538  				l, err = p.FastReadField2(buf[offset:])
  3539  				offset += l
  3540  				if err != nil {
  3541  					goto ReadFieldError
  3542  				}
  3543  				issetQuery2 = true
  3544  			} else {
  3545  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3546  				offset += l
  3547  				if err != nil {
  3548  					goto SkipFieldError
  3549  				}
  3550  			}
  3551  		case 3:
  3552  			if fieldTypeId == thrift.STRUCT {
  3553  				l, err = p.FastReadField3(buf[offset:])
  3554  				offset += l
  3555  				if err != nil {
  3556  					goto ReadFieldError
  3557  				}
  3558  				issetHeader = true
  3559  			} else {
  3560  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3561  				offset += l
  3562  				if err != nil {
  3563  					goto SkipFieldError
  3564  				}
  3565  			}
  3566  		case 4:
  3567  			if fieldTypeId == thrift.MAP {
  3568  				l, err = p.FastReadField4(buf[offset:])
  3569  				offset += l
  3570  				if err != nil {
  3571  					goto ReadFieldError
  3572  				}
  3573  				issetHeader2 = true
  3574  			} else {
  3575  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3576  				offset += l
  3577  				if err != nil {
  3578  					goto SkipFieldError
  3579  				}
  3580  			}
  3581  		case 5:
  3582  			if fieldTypeId == thrift.STRUCT {
  3583  				l, err = p.FastReadField5(buf[offset:])
  3584  				offset += l
  3585  				if err != nil {
  3586  					goto ReadFieldError
  3587  				}
  3588  			} else {
  3589  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3590  				offset += l
  3591  				if err != nil {
  3592  					goto SkipFieldError
  3593  				}
  3594  			}
  3595  		case 6:
  3596  			if fieldTypeId == thrift.SET {
  3597  				l, err = p.FastReadField6(buf[offset:])
  3598  				offset += l
  3599  				if err != nil {
  3600  					goto ReadFieldError
  3601  				}
  3602  				issetCookie2 = true
  3603  			} else {
  3604  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3605  				offset += l
  3606  				if err != nil {
  3607  					goto SkipFieldError
  3608  				}
  3609  			}
  3610  		default:
  3611  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  3612  			offset += l
  3613  			if err != nil {
  3614  				goto SkipFieldError
  3615  			}
  3616  		}
  3617  
  3618  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  3619  		offset += l
  3620  		if err != nil {
  3621  			goto ReadFieldEndError
  3622  		}
  3623  	}
  3624  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  3625  	offset += l
  3626  	if err != nil {
  3627  		goto ReadStructEndError
  3628  	}
  3629  
  3630  	if !issetQuery2 {
  3631  		fieldId = 2
  3632  		goto RequiredFieldNotSetError
  3633  	}
  3634  
  3635  	if !issetHeader {
  3636  		fieldId = 3
  3637  		goto RequiredFieldNotSetError
  3638  	}
  3639  
  3640  	if !issetHeader2 {
  3641  		fieldId = 4
  3642  		goto RequiredFieldNotSetError
  3643  	}
  3644  
  3645  	if !issetCookie2 {
  3646  		fieldId = 6
  3647  		goto RequiredFieldNotSetError
  3648  	}
  3649  	return offset, nil
  3650  ReadStructBeginError:
  3651  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  3652  ReadFieldBeginError:
  3653  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  3654  ReadFieldError:
  3655  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleJSONString[fieldId]), err)
  3656  SkipFieldError:
  3657  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  3658  ReadFieldEndError:
  3659  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  3660  ReadStructEndError:
  3661  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  3662  RequiredFieldNotSetError:
  3663  	return offset, thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field %s is not set", fieldIDToName_ExampleJSONString[fieldId]))
  3664  }
  3665  
  3666  func (p *ExampleJSONString) FastReadField1(buf []byte) (int, error) {
  3667  	offset := 0
  3668  	p.Query = NewJSONObject()
  3669  	if l, err := p.Query.FastRead(buf[offset:]); err != nil {
  3670  		return offset, err
  3671  	} else {
  3672  		offset += l
  3673  	}
  3674  	return offset, nil
  3675  }
  3676  
  3677  func (p *ExampleJSONString) FastReadField2(buf []byte) (int, error) {
  3678  	offset := 0
  3679  
  3680  	_, size, l, err := bthrift.Binary.ReadListBegin(buf[offset:])
  3681  	offset += l
  3682  	if err != nil {
  3683  		return offset, err
  3684  	}
  3685  	p.Query2 = make([]string, 0, size)
  3686  	for i := 0; i < size; i++ {
  3687  		var _elem string
  3688  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  3689  			return offset, err
  3690  		} else {
  3691  			offset += l
  3692  
  3693  			_elem = v
  3694  
  3695  		}
  3696  
  3697  		p.Query2 = append(p.Query2, _elem)
  3698  	}
  3699  	if l, err := bthrift.Binary.ReadListEnd(buf[offset:]); err != nil {
  3700  		return offset, err
  3701  	} else {
  3702  		offset += l
  3703  	}
  3704  	return offset, nil
  3705  }
  3706  
  3707  func (p *ExampleJSONString) FastReadField3(buf []byte) (int, error) {
  3708  	offset := 0
  3709  	p.Header = NewJSONObject()
  3710  	if l, err := p.Header.FastRead(buf[offset:]); err != nil {
  3711  		return offset, err
  3712  	} else {
  3713  		offset += l
  3714  	}
  3715  	return offset, nil
  3716  }
  3717  
  3718  func (p *ExampleJSONString) FastReadField4(buf []byte) (int, error) {
  3719  	offset := 0
  3720  
  3721  	_, _, size, l, err := bthrift.Binary.ReadMapBegin(buf[offset:])
  3722  	offset += l
  3723  	if err != nil {
  3724  		return offset, err
  3725  	}
  3726  	p.Header2 = make(map[int32]string, size)
  3727  	for i := 0; i < size; i++ {
  3728  		var _key int32
  3729  		if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  3730  			return offset, err
  3731  		} else {
  3732  			offset += l
  3733  
  3734  			_key = v
  3735  
  3736  		}
  3737  
  3738  		var _val string
  3739  		if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  3740  			return offset, err
  3741  		} else {
  3742  			offset += l
  3743  
  3744  			_val = v
  3745  
  3746  		}
  3747  
  3748  		p.Header2[_key] = _val
  3749  	}
  3750  	if l, err := bthrift.Binary.ReadMapEnd(buf[offset:]); err != nil {
  3751  		return offset, err
  3752  	} else {
  3753  		offset += l
  3754  	}
  3755  	return offset, nil
  3756  }
  3757  
  3758  func (p *ExampleJSONString) FastReadField5(buf []byte) (int, error) {
  3759  	offset := 0
  3760  	p.Cookie = NewJSONObject()
  3761  	if l, err := p.Cookie.FastRead(buf[offset:]); err != nil {
  3762  		return offset, err
  3763  	} else {
  3764  		offset += l
  3765  	}
  3766  	return offset, nil
  3767  }
  3768  
  3769  func (p *ExampleJSONString) FastReadField6(buf []byte) (int, error) {
  3770  	offset := 0
  3771  
  3772  	_, size, l, err := bthrift.Binary.ReadSetBegin(buf[offset:])
  3773  	offset += l
  3774  	if err != nil {
  3775  		return offset, err
  3776  	}
  3777  	p.Cookie2 = make([]int32, 0, size)
  3778  	for i := 0; i < size; i++ {
  3779  		var _elem int32
  3780  		if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  3781  			return offset, err
  3782  		} else {
  3783  			offset += l
  3784  
  3785  			_elem = v
  3786  
  3787  		}
  3788  
  3789  		p.Cookie2 = append(p.Cookie2, _elem)
  3790  	}
  3791  	if l, err := bthrift.Binary.ReadSetEnd(buf[offset:]); err != nil {
  3792  		return offset, err
  3793  	} else {
  3794  		offset += l
  3795  	}
  3796  	return offset, nil
  3797  }
  3798  
  3799  // for compatibility
  3800  func (p *ExampleJSONString) FastWrite(buf []byte) int {
  3801  	return 0
  3802  }
  3803  
  3804  func (p *ExampleJSONString) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3805  	offset := 0
  3806  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleJSONString")
  3807  	if p != nil {
  3808  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  3809  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  3810  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  3811  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
  3812  		offset += p.fastWriteField5(buf[offset:], binaryWriter)
  3813  		offset += p.fastWriteField6(buf[offset:], binaryWriter)
  3814  	}
  3815  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  3816  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  3817  	return offset
  3818  }
  3819  
  3820  func (p *ExampleJSONString) BLength() int {
  3821  	l := 0
  3822  	l += bthrift.Binary.StructBeginLength("ExampleJSONString")
  3823  	if p != nil {
  3824  		l += p.field1Length()
  3825  		l += p.field2Length()
  3826  		l += p.field3Length()
  3827  		l += p.field4Length()
  3828  		l += p.field5Length()
  3829  		l += p.field6Length()
  3830  	}
  3831  	l += bthrift.Binary.FieldStopLength()
  3832  	l += bthrift.Binary.StructEndLength()
  3833  	return l
  3834  }
  3835  
  3836  func (p *ExampleJSONString) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3837  	offset := 0
  3838  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Query", thrift.STRUCT, 1)
  3839  	offset += p.Query.FastWriteNocopy(buf[offset:], binaryWriter)
  3840  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3841  	return offset
  3842  }
  3843  
  3844  func (p *ExampleJSONString) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3845  	offset := 0
  3846  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Query2", thrift.LIST, 2)
  3847  	offset += bthrift.Binary.WriteListBegin(buf[offset:], thrift.STRING, len(p.Query2))
  3848  	for _, v := range p.Query2 {
  3849  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, v)
  3850  
  3851  	}
  3852  	offset += bthrift.Binary.WriteListEnd(buf[offset:])
  3853  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3854  	return offset
  3855  }
  3856  
  3857  func (p *ExampleJSONString) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3858  	offset := 0
  3859  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Header", thrift.STRUCT, 3)
  3860  	offset += p.Header.FastWriteNocopy(buf[offset:], binaryWriter)
  3861  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3862  	return offset
  3863  }
  3864  
  3865  func (p *ExampleJSONString) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3866  	offset := 0
  3867  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Header2", thrift.MAP, 4)
  3868  	offset += bthrift.Binary.WriteMapBegin(buf[offset:], thrift.I32, thrift.STRING, len(p.Header2))
  3869  	for k, v := range p.Header2 {
  3870  
  3871  		offset += bthrift.Binary.WriteI32(buf[offset:], k)
  3872  
  3873  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, v)
  3874  
  3875  	}
  3876  	offset += bthrift.Binary.WriteMapEnd(buf[offset:])
  3877  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3878  	return offset
  3879  }
  3880  
  3881  func (p *ExampleJSONString) fastWriteField5(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3882  	offset := 0
  3883  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Cookie", thrift.STRUCT, 5)
  3884  	offset += p.Cookie.FastWriteNocopy(buf[offset:], binaryWriter)
  3885  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3886  	return offset
  3887  }
  3888  
  3889  func (p *ExampleJSONString) fastWriteField6(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  3890  	offset := 0
  3891  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Cookie2", thrift.SET, 6)
  3892  	offset += bthrift.Binary.WriteSetBegin(buf[offset:], thrift.I32, len(p.Cookie2))
  3893  
  3894  	for i := 0; i < len(p.Cookie2); i++ {
  3895  		for j := i + 1; j < len(p.Cookie2); j++ {
  3896  			if func(tgt, src int32) bool {
  3897  				if tgt != src {
  3898  					return false
  3899  				}
  3900  				return true
  3901  			}(p.Cookie2[i], p.Cookie2[j]) {
  3902  				panic(fmt.Errorf("%T error writing set field: slice is not unique", p.Cookie2[i]))
  3903  			}
  3904  		}
  3905  	}
  3906  	for _, v := range p.Cookie2 {
  3907  		offset += bthrift.Binary.WriteI32(buf[offset:], v)
  3908  
  3909  	}
  3910  	offset += bthrift.Binary.WriteSetEnd(buf[offset:])
  3911  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  3912  	return offset
  3913  }
  3914  
  3915  func (p *ExampleJSONString) field1Length() int {
  3916  	l := 0
  3917  	l += bthrift.Binary.FieldBeginLength("Query", thrift.STRUCT, 1)
  3918  	l += p.Query.BLength()
  3919  	l += bthrift.Binary.FieldEndLength()
  3920  	return l
  3921  }
  3922  
  3923  func (p *ExampleJSONString) field2Length() int {
  3924  	l := 0
  3925  	l += bthrift.Binary.FieldBeginLength("Query2", thrift.LIST, 2)
  3926  	l += bthrift.Binary.ListBeginLength(thrift.STRING, len(p.Query2))
  3927  	for _, v := range p.Query2 {
  3928  		l += bthrift.Binary.StringLengthNocopy(v)
  3929  
  3930  	}
  3931  	l += bthrift.Binary.ListEndLength()
  3932  	l += bthrift.Binary.FieldEndLength()
  3933  	return l
  3934  }
  3935  
  3936  func (p *ExampleJSONString) field3Length() int {
  3937  	l := 0
  3938  	l += bthrift.Binary.FieldBeginLength("Header", thrift.STRUCT, 3)
  3939  	l += p.Header.BLength()
  3940  	l += bthrift.Binary.FieldEndLength()
  3941  	return l
  3942  }
  3943  
  3944  func (p *ExampleJSONString) field4Length() int {
  3945  	l := 0
  3946  	l += bthrift.Binary.FieldBeginLength("Header2", thrift.MAP, 4)
  3947  	l += bthrift.Binary.MapBeginLength(thrift.I32, thrift.STRING, len(p.Header2))
  3948  	for k, v := range p.Header2 {
  3949  
  3950  		l += bthrift.Binary.I32Length(k)
  3951  
  3952  		l += bthrift.Binary.StringLengthNocopy(v)
  3953  
  3954  	}
  3955  	l += bthrift.Binary.MapEndLength()
  3956  	l += bthrift.Binary.FieldEndLength()
  3957  	return l
  3958  }
  3959  
  3960  func (p *ExampleJSONString) field5Length() int {
  3961  	l := 0
  3962  	l += bthrift.Binary.FieldBeginLength("Cookie", thrift.STRUCT, 5)
  3963  	l += p.Cookie.BLength()
  3964  	l += bthrift.Binary.FieldEndLength()
  3965  	return l
  3966  }
  3967  
  3968  func (p *ExampleJSONString) field6Length() int {
  3969  	l := 0
  3970  	l += bthrift.Binary.FieldBeginLength("Cookie2", thrift.SET, 6)
  3971  	l += bthrift.Binary.SetBeginLength(thrift.I32, len(p.Cookie2))
  3972  
  3973  	for i := 0; i < len(p.Cookie2); i++ {
  3974  		for j := i + 1; j < len(p.Cookie2); j++ {
  3975  			if func(tgt, src int32) bool {
  3976  				if tgt != src {
  3977  					return false
  3978  				}
  3979  				return true
  3980  			}(p.Cookie2[i], p.Cookie2[j]) {
  3981  				panic(fmt.Errorf("%T error writing set field: slice is not unique", p.Cookie2[i]))
  3982  			}
  3983  		}
  3984  	}
  3985  	var tmpV int32
  3986  	l += bthrift.Binary.I32Length(int32(tmpV)) * len(p.Cookie2)
  3987  	l += bthrift.Binary.SetEndLength()
  3988  	l += bthrift.Binary.FieldEndLength()
  3989  	return l
  3990  }
  3991  
  3992  func (p *ExamplePartial) FastRead(buf []byte) (int, error) {
  3993  	var err error
  3994  	var offset int
  3995  	var l int
  3996  	var fieldTypeId thrift.TType
  3997  	var fieldId int16
  3998  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  3999  	offset += l
  4000  	if err != nil {
  4001  		goto ReadStructBeginError
  4002  	}
  4003  
  4004  	for {
  4005  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  4006  		offset += l
  4007  		if err != nil {
  4008  			goto ReadFieldBeginError
  4009  		}
  4010  		if fieldTypeId == thrift.STOP {
  4011  			break
  4012  		}
  4013  		switch fieldId {
  4014  		case 1:
  4015  			if fieldTypeId == thrift.STRING {
  4016  				l, err = p.FastReadField1(buf[offset:])
  4017  				offset += l
  4018  				if err != nil {
  4019  					goto ReadFieldError
  4020  				}
  4021  			} else {
  4022  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4023  				offset += l
  4024  				if err != nil {
  4025  					goto SkipFieldError
  4026  				}
  4027  			}
  4028  		default:
  4029  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4030  			offset += l
  4031  			if err != nil {
  4032  				goto SkipFieldError
  4033  			}
  4034  		}
  4035  
  4036  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  4037  		offset += l
  4038  		if err != nil {
  4039  			goto ReadFieldEndError
  4040  		}
  4041  	}
  4042  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  4043  	offset += l
  4044  	if err != nil {
  4045  		goto ReadStructEndError
  4046  	}
  4047  
  4048  	return offset, nil
  4049  ReadStructBeginError:
  4050  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  4051  ReadFieldBeginError:
  4052  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  4053  ReadFieldError:
  4054  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExamplePartial[fieldId]), err)
  4055  SkipFieldError:
  4056  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  4057  ReadFieldEndError:
  4058  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  4059  ReadStructEndError:
  4060  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  4061  }
  4062  
  4063  func (p *ExamplePartial) FastReadField1(buf []byte) (int, error) {
  4064  	offset := 0
  4065  
  4066  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  4067  		return offset, err
  4068  	} else {
  4069  		offset += l
  4070  
  4071  		p.Msg = v
  4072  
  4073  	}
  4074  	return offset, nil
  4075  }
  4076  
  4077  // for compatibility
  4078  func (p *ExamplePartial) FastWrite(buf []byte) int {
  4079  	return 0
  4080  }
  4081  
  4082  func (p *ExamplePartial) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4083  	offset := 0
  4084  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExamplePartial")
  4085  	if p != nil {
  4086  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  4087  	}
  4088  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  4089  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  4090  	return offset
  4091  }
  4092  
  4093  func (p *ExamplePartial) BLength() int {
  4094  	l := 0
  4095  	l += bthrift.Binary.StructBeginLength("ExamplePartial")
  4096  	if p != nil {
  4097  		l += p.field1Length()
  4098  	}
  4099  	l += bthrift.Binary.FieldStopLength()
  4100  	l += bthrift.Binary.StructEndLength()
  4101  	return l
  4102  }
  4103  
  4104  func (p *ExamplePartial) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4105  	offset := 0
  4106  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Msg", thrift.STRING, 1)
  4107  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Msg)
  4108  
  4109  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4110  	return offset
  4111  }
  4112  
  4113  func (p *ExamplePartial) field1Length() int {
  4114  	l := 0
  4115  	l += bthrift.Binary.FieldBeginLength("Msg", thrift.STRING, 1)
  4116  	l += bthrift.Binary.StringLengthNocopy(p.Msg)
  4117  
  4118  	l += bthrift.Binary.FieldEndLength()
  4119  	return l
  4120  }
  4121  
  4122  func (p *ExamplePartial2) FastRead(buf []byte) (int, error) {
  4123  	var err error
  4124  	var offset int
  4125  	var l int
  4126  	var fieldTypeId thrift.TType
  4127  	var fieldId int16
  4128  	var issetStatus bool = false
  4129  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  4130  	offset += l
  4131  	if err != nil {
  4132  		goto ReadStructBeginError
  4133  	}
  4134  
  4135  	for {
  4136  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  4137  		offset += l
  4138  		if err != nil {
  4139  			goto ReadFieldBeginError
  4140  		}
  4141  		if fieldTypeId == thrift.STOP {
  4142  			break
  4143  		}
  4144  		switch fieldId {
  4145  		case 1:
  4146  			if fieldTypeId == thrift.STRING {
  4147  				l, err = p.FastReadField1(buf[offset:])
  4148  				offset += l
  4149  				if err != nil {
  4150  					goto ReadFieldError
  4151  				}
  4152  			} else {
  4153  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4154  				offset += l
  4155  				if err != nil {
  4156  					goto SkipFieldError
  4157  				}
  4158  			}
  4159  		case 2:
  4160  			if fieldTypeId == thrift.DOUBLE {
  4161  				l, err = p.FastReadField2(buf[offset:])
  4162  				offset += l
  4163  				if err != nil {
  4164  					goto ReadFieldError
  4165  				}
  4166  			} else {
  4167  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4168  				offset += l
  4169  				if err != nil {
  4170  					goto SkipFieldError
  4171  				}
  4172  			}
  4173  		case 3:
  4174  			if fieldTypeId == thrift.I32 {
  4175  				l, err = p.FastReadField3(buf[offset:])
  4176  				offset += l
  4177  				if err != nil {
  4178  					goto ReadFieldError
  4179  				}
  4180  				issetStatus = true
  4181  			} else {
  4182  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4183  				offset += l
  4184  				if err != nil {
  4185  					goto SkipFieldError
  4186  				}
  4187  			}
  4188  		case 4:
  4189  			if fieldTypeId == thrift.BOOL {
  4190  				l, err = p.FastReadField4(buf[offset:])
  4191  				offset += l
  4192  				if err != nil {
  4193  					goto ReadFieldError
  4194  				}
  4195  			} else {
  4196  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4197  				offset += l
  4198  				if err != nil {
  4199  					goto SkipFieldError
  4200  				}
  4201  			}
  4202  		case 6:
  4203  			if fieldTypeId == thrift.I64 {
  4204  				l, err = p.FastReadField6(buf[offset:])
  4205  				offset += l
  4206  				if err != nil {
  4207  					goto ReadFieldError
  4208  				}
  4209  			} else {
  4210  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4211  				offset += l
  4212  				if err != nil {
  4213  					goto SkipFieldError
  4214  				}
  4215  			}
  4216  		case 32767:
  4217  			if fieldTypeId == thrift.DOUBLE {
  4218  				l, err = p.FastReadField32767(buf[offset:])
  4219  				offset += l
  4220  				if err != nil {
  4221  					goto ReadFieldError
  4222  				}
  4223  			} else {
  4224  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4225  				offset += l
  4226  				if err != nil {
  4227  					goto SkipFieldError
  4228  				}
  4229  			}
  4230  		case 7:
  4231  			if fieldTypeId == thrift.STRUCT {
  4232  				l, err = p.FastReadField7(buf[offset:])
  4233  				offset += l
  4234  				if err != nil {
  4235  					goto ReadFieldError
  4236  				}
  4237  			} else {
  4238  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4239  				offset += l
  4240  				if err != nil {
  4241  					goto SkipFieldError
  4242  				}
  4243  			}
  4244  		case 255:
  4245  			if fieldTypeId == thrift.STRUCT {
  4246  				l, err = p.FastReadField255(buf[offset:])
  4247  				offset += l
  4248  				if err != nil {
  4249  					goto ReadFieldError
  4250  				}
  4251  			} else {
  4252  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4253  				offset += l
  4254  				if err != nil {
  4255  					goto SkipFieldError
  4256  				}
  4257  			}
  4258  		default:
  4259  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4260  			offset += l
  4261  			if err != nil {
  4262  				goto SkipFieldError
  4263  			}
  4264  		}
  4265  
  4266  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  4267  		offset += l
  4268  		if err != nil {
  4269  			goto ReadFieldEndError
  4270  		}
  4271  	}
  4272  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  4273  	offset += l
  4274  	if err != nil {
  4275  		goto ReadStructEndError
  4276  	}
  4277  
  4278  	if !issetStatus {
  4279  		fieldId = 3
  4280  		goto RequiredFieldNotSetError
  4281  	}
  4282  	return offset, nil
  4283  ReadStructBeginError:
  4284  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  4285  ReadFieldBeginError:
  4286  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  4287  ReadFieldError:
  4288  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExamplePartial2[fieldId]), err)
  4289  SkipFieldError:
  4290  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  4291  ReadFieldEndError:
  4292  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  4293  ReadStructEndError:
  4294  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  4295  RequiredFieldNotSetError:
  4296  	return offset, thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field %s is not set", fieldIDToName_ExamplePartial2[fieldId]))
  4297  }
  4298  
  4299  func (p *ExamplePartial2) FastReadField1(buf []byte) (int, error) {
  4300  	offset := 0
  4301  
  4302  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  4303  		return offset, err
  4304  	} else {
  4305  		offset += l
  4306  
  4307  		p.Msg = v
  4308  
  4309  	}
  4310  	return offset, nil
  4311  }
  4312  
  4313  func (p *ExamplePartial2) FastReadField2(buf []byte) (int, error) {
  4314  	offset := 0
  4315  
  4316  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  4317  		return offset, err
  4318  	} else {
  4319  		offset += l
  4320  		p.Cookie = &v
  4321  
  4322  	}
  4323  	return offset, nil
  4324  }
  4325  
  4326  func (p *ExamplePartial2) FastReadField3(buf []byte) (int, error) {
  4327  	offset := 0
  4328  
  4329  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  4330  		return offset, err
  4331  	} else {
  4332  		offset += l
  4333  
  4334  		p.Status = v
  4335  
  4336  	}
  4337  	return offset, nil
  4338  }
  4339  
  4340  func (p *ExamplePartial2) FastReadField4(buf []byte) (int, error) {
  4341  	offset := 0
  4342  
  4343  	if v, l, err := bthrift.Binary.ReadBool(buf[offset:]); err != nil {
  4344  		return offset, err
  4345  	} else {
  4346  		offset += l
  4347  		p.Header = &v
  4348  
  4349  	}
  4350  	return offset, nil
  4351  }
  4352  
  4353  func (p *ExamplePartial2) FastReadField6(buf []byte) (int, error) {
  4354  	offset := 0
  4355  
  4356  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
  4357  		return offset, err
  4358  	} else {
  4359  		offset += l
  4360  
  4361  		p.Code = v
  4362  
  4363  	}
  4364  	return offset, nil
  4365  }
  4366  
  4367  func (p *ExamplePartial2) FastReadField32767(buf []byte) (int, error) {
  4368  	offset := 0
  4369  
  4370  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  4371  		return offset, err
  4372  	} else {
  4373  		offset += l
  4374  
  4375  		p.Subfix = v
  4376  
  4377  	}
  4378  	return offset, nil
  4379  }
  4380  
  4381  func (p *ExamplePartial2) FastReadField7(buf []byte) (int, error) {
  4382  	offset := 0
  4383  	p.InnerBase = NewInnerBasePartial()
  4384  	if l, err := p.InnerBase.FastRead(buf[offset:]); err != nil {
  4385  		return offset, err
  4386  	} else {
  4387  		offset += l
  4388  	}
  4389  	return offset, nil
  4390  }
  4391  
  4392  func (p *ExamplePartial2) FastReadField255(buf []byte) (int, error) {
  4393  	offset := 0
  4394  	p.BaseResp = base.NewBaseResp()
  4395  	if l, err := p.BaseResp.FastRead(buf[offset:]); err != nil {
  4396  		return offset, err
  4397  	} else {
  4398  		offset += l
  4399  	}
  4400  	return offset, nil
  4401  }
  4402  
  4403  // for compatibility
  4404  func (p *ExamplePartial2) FastWrite(buf []byte) int {
  4405  	return 0
  4406  }
  4407  
  4408  func (p *ExamplePartial2) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4409  	offset := 0
  4410  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExamplePartial2")
  4411  	if p != nil {
  4412  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  4413  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  4414  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
  4415  		offset += p.fastWriteField6(buf[offset:], binaryWriter)
  4416  		offset += p.fastWriteField32767(buf[offset:], binaryWriter)
  4417  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  4418  		offset += p.fastWriteField7(buf[offset:], binaryWriter)
  4419  		offset += p.fastWriteField255(buf[offset:], binaryWriter)
  4420  	}
  4421  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  4422  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  4423  	return offset
  4424  }
  4425  
  4426  func (p *ExamplePartial2) BLength() int {
  4427  	l := 0
  4428  	l += bthrift.Binary.StructBeginLength("ExamplePartial2")
  4429  	if p != nil {
  4430  		l += p.field1Length()
  4431  		l += p.field2Length()
  4432  		l += p.field3Length()
  4433  		l += p.field4Length()
  4434  		l += p.field6Length()
  4435  		l += p.field32767Length()
  4436  		l += p.field7Length()
  4437  		l += p.field255Length()
  4438  	}
  4439  	l += bthrift.Binary.FieldStopLength()
  4440  	l += bthrift.Binary.StructEndLength()
  4441  	return l
  4442  }
  4443  
  4444  func (p *ExamplePartial2) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4445  	offset := 0
  4446  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Msg", thrift.STRING, 1)
  4447  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Msg)
  4448  
  4449  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4450  	return offset
  4451  }
  4452  
  4453  func (p *ExamplePartial2) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4454  	offset := 0
  4455  	if p.IsSetCookie() {
  4456  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Cookie", thrift.DOUBLE, 2)
  4457  		offset += bthrift.Binary.WriteDouble(buf[offset:], *p.Cookie)
  4458  
  4459  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4460  	}
  4461  	return offset
  4462  }
  4463  
  4464  func (p *ExamplePartial2) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4465  	offset := 0
  4466  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Status", thrift.I32, 3)
  4467  	offset += bthrift.Binary.WriteI32(buf[offset:], p.Status)
  4468  
  4469  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4470  	return offset
  4471  }
  4472  
  4473  func (p *ExamplePartial2) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4474  	offset := 0
  4475  	if p.IsSetHeader() {
  4476  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Header", thrift.BOOL, 4)
  4477  		offset += bthrift.Binary.WriteBool(buf[offset:], *p.Header)
  4478  
  4479  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4480  	}
  4481  	return offset
  4482  }
  4483  
  4484  func (p *ExamplePartial2) fastWriteField6(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4485  	offset := 0
  4486  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Code", thrift.I64, 6)
  4487  	offset += bthrift.Binary.WriteI64(buf[offset:], p.Code)
  4488  
  4489  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4490  	return offset
  4491  }
  4492  
  4493  func (p *ExamplePartial2) fastWriteField32767(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4494  	offset := 0
  4495  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Subfix", thrift.DOUBLE, 32767)
  4496  	offset += bthrift.Binary.WriteDouble(buf[offset:], p.Subfix)
  4497  
  4498  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4499  	return offset
  4500  }
  4501  
  4502  func (p *ExamplePartial2) fastWriteField7(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4503  	offset := 0
  4504  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "InnerBase", thrift.STRUCT, 7)
  4505  	offset += p.InnerBase.FastWriteNocopy(buf[offset:], binaryWriter)
  4506  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4507  	return offset
  4508  }
  4509  
  4510  func (p *ExamplePartial2) fastWriteField255(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4511  	offset := 0
  4512  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "BaseResp", thrift.STRUCT, 255)
  4513  	offset += p.BaseResp.FastWriteNocopy(buf[offset:], binaryWriter)
  4514  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4515  	return offset
  4516  }
  4517  
  4518  func (p *ExamplePartial2) field1Length() int {
  4519  	l := 0
  4520  	l += bthrift.Binary.FieldBeginLength("Msg", thrift.STRING, 1)
  4521  	l += bthrift.Binary.StringLengthNocopy(p.Msg)
  4522  
  4523  	l += bthrift.Binary.FieldEndLength()
  4524  	return l
  4525  }
  4526  
  4527  func (p *ExamplePartial2) field2Length() int {
  4528  	l := 0
  4529  	if p.IsSetCookie() {
  4530  		l += bthrift.Binary.FieldBeginLength("Cookie", thrift.DOUBLE, 2)
  4531  		l += bthrift.Binary.DoubleLength(*p.Cookie)
  4532  
  4533  		l += bthrift.Binary.FieldEndLength()
  4534  	}
  4535  	return l
  4536  }
  4537  
  4538  func (p *ExamplePartial2) field3Length() int {
  4539  	l := 0
  4540  	l += bthrift.Binary.FieldBeginLength("Status", thrift.I32, 3)
  4541  	l += bthrift.Binary.I32Length(p.Status)
  4542  
  4543  	l += bthrift.Binary.FieldEndLength()
  4544  	return l
  4545  }
  4546  
  4547  func (p *ExamplePartial2) field4Length() int {
  4548  	l := 0
  4549  	if p.IsSetHeader() {
  4550  		l += bthrift.Binary.FieldBeginLength("Header", thrift.BOOL, 4)
  4551  		l += bthrift.Binary.BoolLength(*p.Header)
  4552  
  4553  		l += bthrift.Binary.FieldEndLength()
  4554  	}
  4555  	return l
  4556  }
  4557  
  4558  func (p *ExamplePartial2) field6Length() int {
  4559  	l := 0
  4560  	l += bthrift.Binary.FieldBeginLength("Code", thrift.I64, 6)
  4561  	l += bthrift.Binary.I64Length(p.Code)
  4562  
  4563  	l += bthrift.Binary.FieldEndLength()
  4564  	return l
  4565  }
  4566  
  4567  func (p *ExamplePartial2) field32767Length() int {
  4568  	l := 0
  4569  	l += bthrift.Binary.FieldBeginLength("Subfix", thrift.DOUBLE, 32767)
  4570  	l += bthrift.Binary.DoubleLength(p.Subfix)
  4571  
  4572  	l += bthrift.Binary.FieldEndLength()
  4573  	return l
  4574  }
  4575  
  4576  func (p *ExamplePartial2) field7Length() int {
  4577  	l := 0
  4578  	l += bthrift.Binary.FieldBeginLength("InnerBase", thrift.STRUCT, 7)
  4579  	l += p.InnerBase.BLength()
  4580  	l += bthrift.Binary.FieldEndLength()
  4581  	return l
  4582  }
  4583  
  4584  func (p *ExamplePartial2) field255Length() int {
  4585  	l := 0
  4586  	l += bthrift.Binary.FieldBeginLength("BaseResp", thrift.STRUCT, 255)
  4587  	l += p.BaseResp.BLength()
  4588  	l += bthrift.Binary.FieldEndLength()
  4589  	return l
  4590  }
  4591  
  4592  func (p *InnerBasePartial) FastRead(buf []byte) (int, error) {
  4593  	var err error
  4594  	var offset int
  4595  	var l int
  4596  	var fieldTypeId thrift.TType
  4597  	var fieldId int16
  4598  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  4599  	offset += l
  4600  	if err != nil {
  4601  		goto ReadStructBeginError
  4602  	}
  4603  
  4604  	for {
  4605  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  4606  		offset += l
  4607  		if err != nil {
  4608  			goto ReadFieldBeginError
  4609  		}
  4610  		if fieldTypeId == thrift.STOP {
  4611  			break
  4612  		}
  4613  		switch fieldId {
  4614  		case 1:
  4615  			if fieldTypeId == thrift.BOOL {
  4616  				l, err = p.FastReadField1(buf[offset:])
  4617  				offset += l
  4618  				if err != nil {
  4619  					goto ReadFieldError
  4620  				}
  4621  			} else {
  4622  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4623  				offset += l
  4624  				if err != nil {
  4625  					goto SkipFieldError
  4626  				}
  4627  			}
  4628  		case 255:
  4629  			if fieldTypeId == thrift.STRUCT {
  4630  				l, err = p.FastReadField255(buf[offset:])
  4631  				offset += l
  4632  				if err != nil {
  4633  					goto ReadFieldError
  4634  				}
  4635  			} else {
  4636  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4637  				offset += l
  4638  				if err != nil {
  4639  					goto SkipFieldError
  4640  				}
  4641  			}
  4642  		default:
  4643  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4644  			offset += l
  4645  			if err != nil {
  4646  				goto SkipFieldError
  4647  			}
  4648  		}
  4649  
  4650  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  4651  		offset += l
  4652  		if err != nil {
  4653  			goto ReadFieldEndError
  4654  		}
  4655  	}
  4656  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  4657  	offset += l
  4658  	if err != nil {
  4659  		goto ReadStructEndError
  4660  	}
  4661  
  4662  	return offset, nil
  4663  ReadStructBeginError:
  4664  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  4665  ReadFieldBeginError:
  4666  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  4667  ReadFieldError:
  4668  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_InnerBasePartial[fieldId]), err)
  4669  SkipFieldError:
  4670  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  4671  ReadFieldEndError:
  4672  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  4673  ReadStructEndError:
  4674  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  4675  }
  4676  
  4677  func (p *InnerBasePartial) FastReadField1(buf []byte) (int, error) {
  4678  	offset := 0
  4679  
  4680  	if v, l, err := bthrift.Binary.ReadBool(buf[offset:]); err != nil {
  4681  		return offset, err
  4682  	} else {
  4683  		offset += l
  4684  
  4685  		p.Bool = v
  4686  
  4687  	}
  4688  	return offset, nil
  4689  }
  4690  
  4691  func (p *InnerBasePartial) FastReadField255(buf []byte) (int, error) {
  4692  	offset := 0
  4693  	p.Base = base.NewBase()
  4694  	if l, err := p.Base.FastRead(buf[offset:]); err != nil {
  4695  		return offset, err
  4696  	} else {
  4697  		offset += l
  4698  	}
  4699  	return offset, nil
  4700  }
  4701  
  4702  // for compatibility
  4703  func (p *InnerBasePartial) FastWrite(buf []byte) int {
  4704  	return 0
  4705  }
  4706  
  4707  func (p *InnerBasePartial) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4708  	offset := 0
  4709  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "InnerBasePartial")
  4710  	if p != nil {
  4711  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  4712  		offset += p.fastWriteField255(buf[offset:], binaryWriter)
  4713  	}
  4714  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  4715  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  4716  	return offset
  4717  }
  4718  
  4719  func (p *InnerBasePartial) BLength() int {
  4720  	l := 0
  4721  	l += bthrift.Binary.StructBeginLength("InnerBasePartial")
  4722  	if p != nil {
  4723  		l += p.field1Length()
  4724  		l += p.field255Length()
  4725  	}
  4726  	l += bthrift.Binary.FieldStopLength()
  4727  	l += bthrift.Binary.StructEndLength()
  4728  	return l
  4729  }
  4730  
  4731  func (p *InnerBasePartial) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4732  	offset := 0
  4733  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Bool", thrift.BOOL, 1)
  4734  	offset += bthrift.Binary.WriteBool(buf[offset:], p.Bool)
  4735  
  4736  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4737  	return offset
  4738  }
  4739  
  4740  func (p *InnerBasePartial) fastWriteField255(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4741  	offset := 0
  4742  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Base", thrift.STRUCT, 255)
  4743  	offset += p.Base.FastWriteNocopy(buf[offset:], binaryWriter)
  4744  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4745  	return offset
  4746  }
  4747  
  4748  func (p *InnerBasePartial) field1Length() int {
  4749  	l := 0
  4750  	l += bthrift.Binary.FieldBeginLength("Bool", thrift.BOOL, 1)
  4751  	l += bthrift.Binary.BoolLength(p.Bool)
  4752  
  4753  	l += bthrift.Binary.FieldEndLength()
  4754  	return l
  4755  }
  4756  
  4757  func (p *InnerBasePartial) field255Length() int {
  4758  	l := 0
  4759  	l += bthrift.Binary.FieldBeginLength("Base", thrift.STRUCT, 255)
  4760  	l += p.Base.BLength()
  4761  	l += bthrift.Binary.FieldEndLength()
  4762  	return l
  4763  }
  4764  
  4765  func (p *ExampleFallback) FastRead(buf []byte) (int, error) {
  4766  	var err error
  4767  	var offset int
  4768  	var l int
  4769  	var fieldTypeId thrift.TType
  4770  	var fieldId int16
  4771  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  4772  	offset += l
  4773  	if err != nil {
  4774  		goto ReadStructBeginError
  4775  	}
  4776  
  4777  	for {
  4778  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  4779  		offset += l
  4780  		if err != nil {
  4781  			goto ReadFieldBeginError
  4782  		}
  4783  		if fieldTypeId == thrift.STOP {
  4784  			break
  4785  		}
  4786  		switch fieldId {
  4787  		case 2:
  4788  			if fieldTypeId == thrift.STRING {
  4789  				l, err = p.FastReadField2(buf[offset:])
  4790  				offset += l
  4791  				if err != nil {
  4792  					goto ReadFieldError
  4793  				}
  4794  			} else {
  4795  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4796  				offset += l
  4797  				if err != nil {
  4798  					goto SkipFieldError
  4799  				}
  4800  			}
  4801  		case 3:
  4802  			if fieldTypeId == thrift.STRING {
  4803  				l, err = p.FastReadField3(buf[offset:])
  4804  				offset += l
  4805  				if err != nil {
  4806  					goto ReadFieldError
  4807  				}
  4808  			} else {
  4809  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4810  				offset += l
  4811  				if err != nil {
  4812  					goto SkipFieldError
  4813  				}
  4814  			}
  4815  		default:
  4816  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4817  			offset += l
  4818  			if err != nil {
  4819  				goto SkipFieldError
  4820  			}
  4821  		}
  4822  
  4823  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  4824  		offset += l
  4825  		if err != nil {
  4826  			goto ReadFieldEndError
  4827  		}
  4828  	}
  4829  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  4830  	offset += l
  4831  	if err != nil {
  4832  		goto ReadStructEndError
  4833  	}
  4834  
  4835  	return offset, nil
  4836  ReadStructBeginError:
  4837  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  4838  ReadFieldBeginError:
  4839  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  4840  ReadFieldError:
  4841  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleFallback[fieldId]), err)
  4842  SkipFieldError:
  4843  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  4844  ReadFieldEndError:
  4845  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  4846  ReadStructEndError:
  4847  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  4848  }
  4849  
  4850  func (p *ExampleFallback) FastReadField2(buf []byte) (int, error) {
  4851  	offset := 0
  4852  
  4853  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  4854  		return offset, err
  4855  	} else {
  4856  		offset += l
  4857  
  4858  		p.Msg = v
  4859  
  4860  	}
  4861  	return offset, nil
  4862  }
  4863  
  4864  func (p *ExampleFallback) FastReadField3(buf []byte) (int, error) {
  4865  	offset := 0
  4866  
  4867  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  4868  		return offset, err
  4869  	} else {
  4870  		offset += l
  4871  
  4872  		p.Heeader = v
  4873  
  4874  	}
  4875  	return offset, nil
  4876  }
  4877  
  4878  // for compatibility
  4879  func (p *ExampleFallback) FastWrite(buf []byte) int {
  4880  	return 0
  4881  }
  4882  
  4883  func (p *ExampleFallback) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4884  	offset := 0
  4885  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleFallback")
  4886  	if p != nil {
  4887  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  4888  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  4889  	}
  4890  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  4891  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  4892  	return offset
  4893  }
  4894  
  4895  func (p *ExampleFallback) BLength() int {
  4896  	l := 0
  4897  	l += bthrift.Binary.StructBeginLength("ExampleFallback")
  4898  	if p != nil {
  4899  		l += p.field2Length()
  4900  		l += p.field3Length()
  4901  	}
  4902  	l += bthrift.Binary.FieldStopLength()
  4903  	l += bthrift.Binary.StructEndLength()
  4904  	return l
  4905  }
  4906  
  4907  func (p *ExampleFallback) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4908  	offset := 0
  4909  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Msg", thrift.STRING, 2)
  4910  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Msg)
  4911  
  4912  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4913  	return offset
  4914  }
  4915  
  4916  func (p *ExampleFallback) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  4917  	offset := 0
  4918  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Heeader", thrift.STRING, 3)
  4919  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Heeader)
  4920  
  4921  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  4922  	return offset
  4923  }
  4924  
  4925  func (p *ExampleFallback) field2Length() int {
  4926  	l := 0
  4927  	l += bthrift.Binary.FieldBeginLength("Msg", thrift.STRING, 2)
  4928  	l += bthrift.Binary.StringLengthNocopy(p.Msg)
  4929  
  4930  	l += bthrift.Binary.FieldEndLength()
  4931  	return l
  4932  }
  4933  
  4934  func (p *ExampleFallback) field3Length() int {
  4935  	l := 0
  4936  	l += bthrift.Binary.FieldBeginLength("Heeader", thrift.STRING, 3)
  4937  	l += bthrift.Binary.StringLengthNocopy(p.Heeader)
  4938  
  4939  	l += bthrift.Binary.FieldEndLength()
  4940  	return l
  4941  }
  4942  
  4943  func (p *InnerCode) FastRead(buf []byte) (int, error) {
  4944  	var err error
  4945  	var offset int
  4946  	var l int
  4947  	var fieldTypeId thrift.TType
  4948  	var fieldId int16
  4949  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  4950  	offset += l
  4951  	if err != nil {
  4952  		goto ReadStructBeginError
  4953  	}
  4954  
  4955  	for {
  4956  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  4957  		offset += l
  4958  		if err != nil {
  4959  			goto ReadFieldBeginError
  4960  		}
  4961  		if fieldTypeId == thrift.STOP {
  4962  			break
  4963  		}
  4964  		switch fieldId {
  4965  		case 1:
  4966  			if fieldTypeId == thrift.I64 {
  4967  				l, err = p.FastReadField1(buf[offset:])
  4968  				offset += l
  4969  				if err != nil {
  4970  					goto ReadFieldError
  4971  				}
  4972  			} else {
  4973  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4974  				offset += l
  4975  				if err != nil {
  4976  					goto SkipFieldError
  4977  				}
  4978  			}
  4979  		case 2:
  4980  			if fieldTypeId == thrift.I16 {
  4981  				l, err = p.FastReadField2(buf[offset:])
  4982  				offset += l
  4983  				if err != nil {
  4984  					goto ReadFieldError
  4985  				}
  4986  			} else {
  4987  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  4988  				offset += l
  4989  				if err != nil {
  4990  					goto SkipFieldError
  4991  				}
  4992  			}
  4993  		case 3:
  4994  			if fieldTypeId == thrift.LIST {
  4995  				l, err = p.FastReadField3(buf[offset:])
  4996  				offset += l
  4997  				if err != nil {
  4998  					goto ReadFieldError
  4999  				}
  5000  			} else {
  5001  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5002  				offset += l
  5003  				if err != nil {
  5004  					goto SkipFieldError
  5005  				}
  5006  			}
  5007  		default:
  5008  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5009  			offset += l
  5010  			if err != nil {
  5011  				goto SkipFieldError
  5012  			}
  5013  		}
  5014  
  5015  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  5016  		offset += l
  5017  		if err != nil {
  5018  			goto ReadFieldEndError
  5019  		}
  5020  	}
  5021  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  5022  	offset += l
  5023  	if err != nil {
  5024  		goto ReadStructEndError
  5025  	}
  5026  
  5027  	return offset, nil
  5028  ReadStructBeginError:
  5029  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  5030  ReadFieldBeginError:
  5031  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  5032  ReadFieldError:
  5033  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_InnerCode[fieldId]), err)
  5034  SkipFieldError:
  5035  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  5036  ReadFieldEndError:
  5037  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  5038  ReadStructEndError:
  5039  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  5040  }
  5041  
  5042  func (p *InnerCode) FastReadField1(buf []byte) (int, error) {
  5043  	offset := 0
  5044  
  5045  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
  5046  		return offset, err
  5047  	} else {
  5048  		offset += l
  5049  
  5050  		p.C1 = v
  5051  
  5052  	}
  5053  	return offset, nil
  5054  }
  5055  
  5056  func (p *InnerCode) FastReadField2(buf []byte) (int, error) {
  5057  	offset := 0
  5058  
  5059  	if v, l, err := bthrift.Binary.ReadI16(buf[offset:]); err != nil {
  5060  		return offset, err
  5061  	} else {
  5062  		offset += l
  5063  
  5064  		p.C2 = v
  5065  
  5066  	}
  5067  	return offset, nil
  5068  }
  5069  
  5070  func (p *InnerCode) FastReadField3(buf []byte) (int, error) {
  5071  	offset := 0
  5072  
  5073  	_, size, l, err := bthrift.Binary.ReadListBegin(buf[offset:])
  5074  	offset += l
  5075  	if err != nil {
  5076  		return offset, err
  5077  	}
  5078  	p.C3 = make([]*InnerCode, 0, size)
  5079  	for i := 0; i < size; i++ {
  5080  		_elem := NewInnerCode()
  5081  		if l, err := _elem.FastRead(buf[offset:]); err != nil {
  5082  			return offset, err
  5083  		} else {
  5084  			offset += l
  5085  		}
  5086  
  5087  		p.C3 = append(p.C3, _elem)
  5088  	}
  5089  	if l, err := bthrift.Binary.ReadListEnd(buf[offset:]); err != nil {
  5090  		return offset, err
  5091  	} else {
  5092  		offset += l
  5093  	}
  5094  	return offset, nil
  5095  }
  5096  
  5097  // for compatibility
  5098  func (p *InnerCode) FastWrite(buf []byte) int {
  5099  	return 0
  5100  }
  5101  
  5102  func (p *InnerCode) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5103  	offset := 0
  5104  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "InnerCode")
  5105  	if p != nil {
  5106  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  5107  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  5108  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  5109  	}
  5110  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  5111  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  5112  	return offset
  5113  }
  5114  
  5115  func (p *InnerCode) BLength() int {
  5116  	l := 0
  5117  	l += bthrift.Binary.StructBeginLength("InnerCode")
  5118  	if p != nil {
  5119  		l += p.field1Length()
  5120  		l += p.field2Length()
  5121  		l += p.field3Length()
  5122  	}
  5123  	l += bthrift.Binary.FieldStopLength()
  5124  	l += bthrift.Binary.StructEndLength()
  5125  	return l
  5126  }
  5127  
  5128  func (p *InnerCode) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5129  	offset := 0
  5130  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "C1", thrift.I64, 1)
  5131  	offset += bthrift.Binary.WriteI64(buf[offset:], p.C1)
  5132  
  5133  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5134  	return offset
  5135  }
  5136  
  5137  func (p *InnerCode) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5138  	offset := 0
  5139  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "C2", thrift.I16, 2)
  5140  	offset += bthrift.Binary.WriteI16(buf[offset:], p.C2)
  5141  
  5142  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5143  	return offset
  5144  }
  5145  
  5146  func (p *InnerCode) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5147  	offset := 0
  5148  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "C3", thrift.LIST, 3)
  5149  	offset += bthrift.Binary.WriteListBegin(buf[offset:], thrift.STRUCT, len(p.C3))
  5150  	for _, v := range p.C3 {
  5151  		offset += v.FastWriteNocopy(buf[offset:], binaryWriter)
  5152  	}
  5153  	offset += bthrift.Binary.WriteListEnd(buf[offset:])
  5154  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5155  	return offset
  5156  }
  5157  
  5158  func (p *InnerCode) field1Length() int {
  5159  	l := 0
  5160  	l += bthrift.Binary.FieldBeginLength("C1", thrift.I64, 1)
  5161  	l += bthrift.Binary.I64Length(p.C1)
  5162  
  5163  	l += bthrift.Binary.FieldEndLength()
  5164  	return l
  5165  }
  5166  
  5167  func (p *InnerCode) field2Length() int {
  5168  	l := 0
  5169  	l += bthrift.Binary.FieldBeginLength("C2", thrift.I16, 2)
  5170  	l += bthrift.Binary.I16Length(p.C2)
  5171  
  5172  	l += bthrift.Binary.FieldEndLength()
  5173  	return l
  5174  }
  5175  
  5176  func (p *InnerCode) field3Length() int {
  5177  	l := 0
  5178  	l += bthrift.Binary.FieldBeginLength("C3", thrift.LIST, 3)
  5179  	l += bthrift.Binary.ListBeginLength(thrift.STRUCT, len(p.C3))
  5180  	for _, v := range p.C3 {
  5181  		l += v.BLength()
  5182  	}
  5183  	l += bthrift.Binary.ListEndLength()
  5184  	l += bthrift.Binary.FieldEndLength()
  5185  	return l
  5186  }
  5187  
  5188  func (p *ExampleApiBody) FastRead(buf []byte) (int, error) {
  5189  	var err error
  5190  	var offset int
  5191  	var l int
  5192  	var fieldTypeId thrift.TType
  5193  	var fieldId int16
  5194  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  5195  	offset += l
  5196  	if err != nil {
  5197  		goto ReadStructBeginError
  5198  	}
  5199  
  5200  	for {
  5201  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  5202  		offset += l
  5203  		if err != nil {
  5204  			goto ReadFieldBeginError
  5205  		}
  5206  		if fieldTypeId == thrift.STOP {
  5207  			break
  5208  		}
  5209  		switch fieldId {
  5210  		case 1:
  5211  			if fieldTypeId == thrift.I64 {
  5212  				l, err = p.FastReadField1(buf[offset:])
  5213  				offset += l
  5214  				if err != nil {
  5215  					goto ReadFieldError
  5216  				}
  5217  			} else {
  5218  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5219  				offset += l
  5220  				if err != nil {
  5221  					goto SkipFieldError
  5222  				}
  5223  			}
  5224  		case 2:
  5225  			if fieldTypeId == thrift.I16 {
  5226  				l, err = p.FastReadField2(buf[offset:])
  5227  				offset += l
  5228  				if err != nil {
  5229  					goto ReadFieldError
  5230  				}
  5231  			} else {
  5232  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5233  				offset += l
  5234  				if err != nil {
  5235  					goto SkipFieldError
  5236  				}
  5237  			}
  5238  		case 3:
  5239  			if fieldTypeId == thrift.STRUCT {
  5240  				l, err = p.FastReadField3(buf[offset:])
  5241  				offset += l
  5242  				if err != nil {
  5243  					goto ReadFieldError
  5244  				}
  5245  			} else {
  5246  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5247  				offset += l
  5248  				if err != nil {
  5249  					goto SkipFieldError
  5250  				}
  5251  			}
  5252  		default:
  5253  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5254  			offset += l
  5255  			if err != nil {
  5256  				goto SkipFieldError
  5257  			}
  5258  		}
  5259  
  5260  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  5261  		offset += l
  5262  		if err != nil {
  5263  			goto ReadFieldEndError
  5264  		}
  5265  	}
  5266  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  5267  	offset += l
  5268  	if err != nil {
  5269  		goto ReadStructEndError
  5270  	}
  5271  
  5272  	return offset, nil
  5273  ReadStructBeginError:
  5274  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  5275  ReadFieldBeginError:
  5276  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  5277  ReadFieldError:
  5278  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleApiBody[fieldId]), err)
  5279  SkipFieldError:
  5280  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  5281  ReadFieldEndError:
  5282  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  5283  ReadStructEndError:
  5284  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  5285  }
  5286  
  5287  func (p *ExampleApiBody) FastReadField1(buf []byte) (int, error) {
  5288  	offset := 0
  5289  
  5290  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
  5291  		return offset, err
  5292  	} else {
  5293  		offset += l
  5294  
  5295  		p.Code = v
  5296  
  5297  	}
  5298  	return offset, nil
  5299  }
  5300  
  5301  func (p *ExampleApiBody) FastReadField2(buf []byte) (int, error) {
  5302  	offset := 0
  5303  
  5304  	if v, l, err := bthrift.Binary.ReadI16(buf[offset:]); err != nil {
  5305  		return offset, err
  5306  	} else {
  5307  		offset += l
  5308  
  5309  		p.Code2 = v
  5310  
  5311  	}
  5312  	return offset, nil
  5313  }
  5314  
  5315  func (p *ExampleApiBody) FastReadField3(buf []byte) (int, error) {
  5316  	offset := 0
  5317  	p.InnerCode = NewInnerCode()
  5318  	if l, err := p.InnerCode.FastRead(buf[offset:]); err != nil {
  5319  		return offset, err
  5320  	} else {
  5321  		offset += l
  5322  	}
  5323  	return offset, nil
  5324  }
  5325  
  5326  // for compatibility
  5327  func (p *ExampleApiBody) FastWrite(buf []byte) int {
  5328  	return 0
  5329  }
  5330  
  5331  func (p *ExampleApiBody) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5332  	offset := 0
  5333  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleApiBody")
  5334  	if p != nil {
  5335  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  5336  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  5337  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  5338  	}
  5339  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  5340  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  5341  	return offset
  5342  }
  5343  
  5344  func (p *ExampleApiBody) BLength() int {
  5345  	l := 0
  5346  	l += bthrift.Binary.StructBeginLength("ExampleApiBody")
  5347  	if p != nil {
  5348  		l += p.field1Length()
  5349  		l += p.field2Length()
  5350  		l += p.field3Length()
  5351  	}
  5352  	l += bthrift.Binary.FieldStopLength()
  5353  	l += bthrift.Binary.StructEndLength()
  5354  	return l
  5355  }
  5356  
  5357  func (p *ExampleApiBody) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5358  	offset := 0
  5359  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Code", thrift.I64, 1)
  5360  	offset += bthrift.Binary.WriteI64(buf[offset:], p.Code)
  5361  
  5362  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5363  	return offset
  5364  }
  5365  
  5366  func (p *ExampleApiBody) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5367  	offset := 0
  5368  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Code2", thrift.I16, 2)
  5369  	offset += bthrift.Binary.WriteI16(buf[offset:], p.Code2)
  5370  
  5371  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5372  	return offset
  5373  }
  5374  
  5375  func (p *ExampleApiBody) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5376  	offset := 0
  5377  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "InnerCode", thrift.STRUCT, 3)
  5378  	offset += p.InnerCode.FastWriteNocopy(buf[offset:], binaryWriter)
  5379  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5380  	return offset
  5381  }
  5382  
  5383  func (p *ExampleApiBody) field1Length() int {
  5384  	l := 0
  5385  	l += bthrift.Binary.FieldBeginLength("Code", thrift.I64, 1)
  5386  	l += bthrift.Binary.I64Length(p.Code)
  5387  
  5388  	l += bthrift.Binary.FieldEndLength()
  5389  	return l
  5390  }
  5391  
  5392  func (p *ExampleApiBody) field2Length() int {
  5393  	l := 0
  5394  	l += bthrift.Binary.FieldBeginLength("Code2", thrift.I16, 2)
  5395  	l += bthrift.Binary.I16Length(p.Code2)
  5396  
  5397  	l += bthrift.Binary.FieldEndLength()
  5398  	return l
  5399  }
  5400  
  5401  func (p *ExampleApiBody) field3Length() int {
  5402  	l := 0
  5403  	l += bthrift.Binary.FieldBeginLength("InnerCode", thrift.STRUCT, 3)
  5404  	l += p.InnerCode.BLength()
  5405  	l += bthrift.Binary.FieldEndLength()
  5406  	return l
  5407  }
  5408  
  5409  func (p *InnerJSON) FastRead(buf []byte) (int, error) {
  5410  	var err error
  5411  	var offset int
  5412  	var l int
  5413  	var fieldTypeId thrift.TType
  5414  	var fieldId int16
  5415  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  5416  	offset += l
  5417  	if err != nil {
  5418  		goto ReadStructBeginError
  5419  	}
  5420  
  5421  	for {
  5422  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  5423  		offset += l
  5424  		if err != nil {
  5425  			goto ReadFieldBeginError
  5426  		}
  5427  		if fieldTypeId == thrift.STOP {
  5428  			break
  5429  		}
  5430  		switch fieldId {
  5431  		case 1:
  5432  			if fieldTypeId == thrift.STRING {
  5433  				l, err = p.FastReadField1(buf[offset:])
  5434  				offset += l
  5435  				if err != nil {
  5436  					goto ReadFieldError
  5437  				}
  5438  			} else {
  5439  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5440  				offset += l
  5441  				if err != nil {
  5442  					goto SkipFieldError
  5443  				}
  5444  			}
  5445  		case 2:
  5446  			if fieldTypeId == thrift.I64 {
  5447  				l, err = p.FastReadField2(buf[offset:])
  5448  				offset += l
  5449  				if err != nil {
  5450  					goto ReadFieldError
  5451  				}
  5452  			} else {
  5453  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5454  				offset += l
  5455  				if err != nil {
  5456  					goto SkipFieldError
  5457  				}
  5458  			}
  5459  		case 3:
  5460  			if fieldTypeId == thrift.DOUBLE {
  5461  				l, err = p.FastReadField3(buf[offset:])
  5462  				offset += l
  5463  				if err != nil {
  5464  					goto ReadFieldError
  5465  				}
  5466  			} else {
  5467  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5468  				offset += l
  5469  				if err != nil {
  5470  					goto SkipFieldError
  5471  				}
  5472  			}
  5473  		default:
  5474  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5475  			offset += l
  5476  			if err != nil {
  5477  				goto SkipFieldError
  5478  			}
  5479  		}
  5480  
  5481  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  5482  		offset += l
  5483  		if err != nil {
  5484  			goto ReadFieldEndError
  5485  		}
  5486  	}
  5487  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  5488  	offset += l
  5489  	if err != nil {
  5490  		goto ReadStructEndError
  5491  	}
  5492  
  5493  	return offset, nil
  5494  ReadStructBeginError:
  5495  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  5496  ReadFieldBeginError:
  5497  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  5498  ReadFieldError:
  5499  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_InnerJSON[fieldId]), err)
  5500  SkipFieldError:
  5501  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  5502  ReadFieldEndError:
  5503  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  5504  ReadStructEndError:
  5505  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  5506  }
  5507  
  5508  func (p *InnerJSON) FastReadField1(buf []byte) (int, error) {
  5509  	offset := 0
  5510  
  5511  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  5512  		return offset, err
  5513  	} else {
  5514  		offset += l
  5515  
  5516  		p.A = v
  5517  
  5518  	}
  5519  	return offset, nil
  5520  }
  5521  
  5522  func (p *InnerJSON) FastReadField2(buf []byte) (int, error) {
  5523  	offset := 0
  5524  
  5525  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
  5526  		return offset, err
  5527  	} else {
  5528  		offset += l
  5529  
  5530  		p.B = v
  5531  
  5532  	}
  5533  	return offset, nil
  5534  }
  5535  
  5536  func (p *InnerJSON) FastReadField3(buf []byte) (int, error) {
  5537  	offset := 0
  5538  
  5539  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  5540  		return offset, err
  5541  	} else {
  5542  		offset += l
  5543  
  5544  		p.InnerForm = v
  5545  
  5546  	}
  5547  	return offset, nil
  5548  }
  5549  
  5550  // for compatibility
  5551  func (p *InnerJSON) FastWrite(buf []byte) int {
  5552  	return 0
  5553  }
  5554  
  5555  func (p *InnerJSON) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5556  	offset := 0
  5557  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "InnerJSON")
  5558  	if p != nil {
  5559  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  5560  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  5561  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  5562  	}
  5563  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  5564  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  5565  	return offset
  5566  }
  5567  
  5568  func (p *InnerJSON) BLength() int {
  5569  	l := 0
  5570  	l += bthrift.Binary.StructBeginLength("InnerJSON")
  5571  	if p != nil {
  5572  		l += p.field1Length()
  5573  		l += p.field2Length()
  5574  		l += p.field3Length()
  5575  	}
  5576  	l += bthrift.Binary.FieldStopLength()
  5577  	l += bthrift.Binary.StructEndLength()
  5578  	return l
  5579  }
  5580  
  5581  func (p *InnerJSON) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5582  	offset := 0
  5583  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "A", thrift.STRING, 1)
  5584  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.A)
  5585  
  5586  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5587  	return offset
  5588  }
  5589  
  5590  func (p *InnerJSON) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5591  	offset := 0
  5592  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "B", thrift.I64, 2)
  5593  	offset += bthrift.Binary.WriteI64(buf[offset:], p.B)
  5594  
  5595  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5596  	return offset
  5597  }
  5598  
  5599  func (p *InnerJSON) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5600  	offset := 0
  5601  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "inner_form", thrift.DOUBLE, 3)
  5602  	offset += bthrift.Binary.WriteDouble(buf[offset:], p.InnerForm)
  5603  
  5604  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5605  	return offset
  5606  }
  5607  
  5608  func (p *InnerJSON) field1Length() int {
  5609  	l := 0
  5610  	l += bthrift.Binary.FieldBeginLength("A", thrift.STRING, 1)
  5611  	l += bthrift.Binary.StringLengthNocopy(p.A)
  5612  
  5613  	l += bthrift.Binary.FieldEndLength()
  5614  	return l
  5615  }
  5616  
  5617  func (p *InnerJSON) field2Length() int {
  5618  	l := 0
  5619  	l += bthrift.Binary.FieldBeginLength("B", thrift.I64, 2)
  5620  	l += bthrift.Binary.I64Length(p.B)
  5621  
  5622  	l += bthrift.Binary.FieldEndLength()
  5623  	return l
  5624  }
  5625  
  5626  func (p *InnerJSON) field3Length() int {
  5627  	l := 0
  5628  	l += bthrift.Binary.FieldBeginLength("inner_form", thrift.DOUBLE, 3)
  5629  	l += bthrift.Binary.DoubleLength(p.InnerForm)
  5630  
  5631  	l += bthrift.Binary.FieldEndLength()
  5632  	return l
  5633  }
  5634  
  5635  func (p *ExamplePostForm) FastRead(buf []byte) (int, error) {
  5636  	var err error
  5637  	var offset int
  5638  	var l int
  5639  	var fieldTypeId thrift.TType
  5640  	var fieldId int16
  5641  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  5642  	offset += l
  5643  	if err != nil {
  5644  		goto ReadStructBeginError
  5645  	}
  5646  
  5647  	for {
  5648  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  5649  		offset += l
  5650  		if err != nil {
  5651  			goto ReadFieldBeginError
  5652  		}
  5653  		if fieldTypeId == thrift.STOP {
  5654  			break
  5655  		}
  5656  		switch fieldId {
  5657  		case 1:
  5658  			if fieldTypeId == thrift.STRING {
  5659  				l, err = p.FastReadField1(buf[offset:])
  5660  				offset += l
  5661  				if err != nil {
  5662  					goto ReadFieldError
  5663  				}
  5664  			} else {
  5665  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5666  				offset += l
  5667  				if err != nil {
  5668  					goto SkipFieldError
  5669  				}
  5670  			}
  5671  		case 2:
  5672  			if fieldTypeId == thrift.STRING {
  5673  				l, err = p.FastReadField2(buf[offset:])
  5674  				offset += l
  5675  				if err != nil {
  5676  					goto ReadFieldError
  5677  				}
  5678  			} else {
  5679  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5680  				offset += l
  5681  				if err != nil {
  5682  					goto SkipFieldError
  5683  				}
  5684  			}
  5685  		case 3:
  5686  			if fieldTypeId == thrift.STRUCT {
  5687  				l, err = p.FastReadField3(buf[offset:])
  5688  				offset += l
  5689  				if err != nil {
  5690  					goto ReadFieldError
  5691  				}
  5692  			} else {
  5693  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5694  				offset += l
  5695  				if err != nil {
  5696  					goto SkipFieldError
  5697  				}
  5698  			}
  5699  		default:
  5700  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5701  			offset += l
  5702  			if err != nil {
  5703  				goto SkipFieldError
  5704  			}
  5705  		}
  5706  
  5707  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  5708  		offset += l
  5709  		if err != nil {
  5710  			goto ReadFieldEndError
  5711  		}
  5712  	}
  5713  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  5714  	offset += l
  5715  	if err != nil {
  5716  		goto ReadStructEndError
  5717  	}
  5718  
  5719  	return offset, nil
  5720  ReadStructBeginError:
  5721  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  5722  ReadFieldBeginError:
  5723  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  5724  ReadFieldError:
  5725  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExamplePostForm[fieldId]), err)
  5726  SkipFieldError:
  5727  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  5728  ReadFieldEndError:
  5729  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  5730  ReadStructEndError:
  5731  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  5732  }
  5733  
  5734  func (p *ExamplePostForm) FastReadField1(buf []byte) (int, error) {
  5735  	offset := 0
  5736  
  5737  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  5738  		return offset, err
  5739  	} else {
  5740  		offset += l
  5741  
  5742  		p.Query = v
  5743  
  5744  	}
  5745  	return offset, nil
  5746  }
  5747  
  5748  func (p *ExamplePostForm) FastReadField2(buf []byte) (int, error) {
  5749  	offset := 0
  5750  
  5751  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  5752  		return offset, err
  5753  	} else {
  5754  		offset += l
  5755  
  5756  		p.Form = v
  5757  
  5758  	}
  5759  	return offset, nil
  5760  }
  5761  
  5762  func (p *ExamplePostForm) FastReadField3(buf []byte) (int, error) {
  5763  	offset := 0
  5764  	p.JSON = NewInnerJSON()
  5765  	if l, err := p.JSON.FastRead(buf[offset:]); err != nil {
  5766  		return offset, err
  5767  	} else {
  5768  		offset += l
  5769  	}
  5770  	return offset, nil
  5771  }
  5772  
  5773  // for compatibility
  5774  func (p *ExamplePostForm) FastWrite(buf []byte) int {
  5775  	return 0
  5776  }
  5777  
  5778  func (p *ExamplePostForm) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5779  	offset := 0
  5780  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExamplePostForm")
  5781  	if p != nil {
  5782  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  5783  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  5784  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  5785  	}
  5786  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  5787  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  5788  	return offset
  5789  }
  5790  
  5791  func (p *ExamplePostForm) BLength() int {
  5792  	l := 0
  5793  	l += bthrift.Binary.StructBeginLength("ExamplePostForm")
  5794  	if p != nil {
  5795  		l += p.field1Length()
  5796  		l += p.field2Length()
  5797  		l += p.field3Length()
  5798  	}
  5799  	l += bthrift.Binary.FieldStopLength()
  5800  	l += bthrift.Binary.StructEndLength()
  5801  	return l
  5802  }
  5803  
  5804  func (p *ExamplePostForm) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5805  	offset := 0
  5806  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Query", thrift.STRING, 1)
  5807  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Query)
  5808  
  5809  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5810  	return offset
  5811  }
  5812  
  5813  func (p *ExamplePostForm) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5814  	offset := 0
  5815  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Form", thrift.STRING, 2)
  5816  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Form)
  5817  
  5818  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5819  	return offset
  5820  }
  5821  
  5822  func (p *ExamplePostForm) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5823  	offset := 0
  5824  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "JSON", thrift.STRUCT, 3)
  5825  	offset += p.JSON.FastWriteNocopy(buf[offset:], binaryWriter)
  5826  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  5827  	return offset
  5828  }
  5829  
  5830  func (p *ExamplePostForm) field1Length() int {
  5831  	l := 0
  5832  	l += bthrift.Binary.FieldBeginLength("Query", thrift.STRING, 1)
  5833  	l += bthrift.Binary.StringLengthNocopy(p.Query)
  5834  
  5835  	l += bthrift.Binary.FieldEndLength()
  5836  	return l
  5837  }
  5838  
  5839  func (p *ExamplePostForm) field2Length() int {
  5840  	l := 0
  5841  	l += bthrift.Binary.FieldBeginLength("Form", thrift.STRING, 2)
  5842  	l += bthrift.Binary.StringLengthNocopy(p.Form)
  5843  
  5844  	l += bthrift.Binary.FieldEndLength()
  5845  	return l
  5846  }
  5847  
  5848  func (p *ExamplePostForm) field3Length() int {
  5849  	l := 0
  5850  	l += bthrift.Binary.FieldBeginLength("JSON", thrift.STRUCT, 3)
  5851  	l += p.JSON.BLength()
  5852  	l += bthrift.Binary.FieldEndLength()
  5853  	return l
  5854  }
  5855  
  5856  func (p *InnerStruct) FastRead(buf []byte) (int, error) {
  5857  	var err error
  5858  	var offset int
  5859  	var l int
  5860  	var fieldTypeId thrift.TType
  5861  	var fieldId int16
  5862  	var issetMust bool = false
  5863  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  5864  	offset += l
  5865  	if err != nil {
  5866  		goto ReadStructBeginError
  5867  	}
  5868  
  5869  	for {
  5870  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  5871  		offset += l
  5872  		if err != nil {
  5873  			goto ReadFieldBeginError
  5874  		}
  5875  		if fieldTypeId == thrift.STOP {
  5876  			break
  5877  		}
  5878  		switch fieldId {
  5879  		case 1:
  5880  			if fieldTypeId == thrift.STRING {
  5881  				l, err = p.FastReadField1(buf[offset:])
  5882  				offset += l
  5883  				if err != nil {
  5884  					goto ReadFieldError
  5885  				}
  5886  			} else {
  5887  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5888  				offset += l
  5889  				if err != nil {
  5890  					goto SkipFieldError
  5891  				}
  5892  			}
  5893  		case 2:
  5894  			if fieldTypeId == thrift.STRING {
  5895  				l, err = p.FastReadField2(buf[offset:])
  5896  				offset += l
  5897  				if err != nil {
  5898  					goto ReadFieldError
  5899  				}
  5900  				issetMust = true
  5901  			} else {
  5902  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5903  				offset += l
  5904  				if err != nil {
  5905  					goto SkipFieldError
  5906  				}
  5907  			}
  5908  		default:
  5909  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  5910  			offset += l
  5911  			if err != nil {
  5912  				goto SkipFieldError
  5913  			}
  5914  		}
  5915  
  5916  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  5917  		offset += l
  5918  		if err != nil {
  5919  			goto ReadFieldEndError
  5920  		}
  5921  	}
  5922  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  5923  	offset += l
  5924  	if err != nil {
  5925  		goto ReadStructEndError
  5926  	}
  5927  
  5928  	if !issetMust {
  5929  		fieldId = 2
  5930  		goto RequiredFieldNotSetError
  5931  	}
  5932  	return offset, nil
  5933  ReadStructBeginError:
  5934  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  5935  ReadFieldBeginError:
  5936  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  5937  ReadFieldError:
  5938  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_InnerStruct[fieldId]), err)
  5939  SkipFieldError:
  5940  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  5941  ReadFieldEndError:
  5942  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  5943  ReadStructEndError:
  5944  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  5945  RequiredFieldNotSetError:
  5946  	return offset, thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field %s is not set", fieldIDToName_InnerStruct[fieldId]))
  5947  }
  5948  
  5949  func (p *InnerStruct) FastReadField1(buf []byte) (int, error) {
  5950  	offset := 0
  5951  
  5952  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  5953  		return offset, err
  5954  	} else {
  5955  		offset += l
  5956  
  5957  		p.InnerJSON = v
  5958  
  5959  	}
  5960  	return offset, nil
  5961  }
  5962  
  5963  func (p *InnerStruct) FastReadField2(buf []byte) (int, error) {
  5964  	offset := 0
  5965  
  5966  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  5967  		return offset, err
  5968  	} else {
  5969  		offset += l
  5970  
  5971  		p.Must = v
  5972  
  5973  	}
  5974  	return offset, nil
  5975  }
  5976  
  5977  // for compatibility
  5978  func (p *InnerStruct) FastWrite(buf []byte) int {
  5979  	return 0
  5980  }
  5981  
  5982  func (p *InnerStruct) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  5983  	offset := 0
  5984  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "InnerStruct")
  5985  	if p != nil {
  5986  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  5987  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  5988  	}
  5989  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  5990  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  5991  	return offset
  5992  }
  5993  
  5994  func (p *InnerStruct) BLength() int {
  5995  	l := 0
  5996  	l += bthrift.Binary.StructBeginLength("InnerStruct")
  5997  	if p != nil {
  5998  		l += p.field1Length()
  5999  		l += p.field2Length()
  6000  	}
  6001  	l += bthrift.Binary.FieldStopLength()
  6002  	l += bthrift.Binary.StructEndLength()
  6003  	return l
  6004  }
  6005  
  6006  func (p *InnerStruct) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6007  	offset := 0
  6008  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "InnerJSON", thrift.STRING, 1)
  6009  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.InnerJSON)
  6010  
  6011  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6012  	return offset
  6013  }
  6014  
  6015  func (p *InnerStruct) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6016  	offset := 0
  6017  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Must", thrift.STRING, 2)
  6018  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Must)
  6019  
  6020  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6021  	return offset
  6022  }
  6023  
  6024  func (p *InnerStruct) field1Length() int {
  6025  	l := 0
  6026  	l += bthrift.Binary.FieldBeginLength("InnerJSON", thrift.STRING, 1)
  6027  	l += bthrift.Binary.StringLengthNocopy(p.InnerJSON)
  6028  
  6029  	l += bthrift.Binary.FieldEndLength()
  6030  	return l
  6031  }
  6032  
  6033  func (p *InnerStruct) field2Length() int {
  6034  	l := 0
  6035  	l += bthrift.Binary.FieldBeginLength("Must", thrift.STRING, 2)
  6036  	l += bthrift.Binary.StringLengthNocopy(p.Must)
  6037  
  6038  	l += bthrift.Binary.FieldEndLength()
  6039  	return l
  6040  }
  6041  
  6042  func (p *ExampleDynamicStruct) FastRead(buf []byte) (int, error) {
  6043  	var err error
  6044  	var offset int
  6045  	var l int
  6046  	var fieldTypeId thrift.TType
  6047  	var fieldId int16
  6048  	var issetQuery bool = false
  6049  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  6050  	offset += l
  6051  	if err != nil {
  6052  		goto ReadStructBeginError
  6053  	}
  6054  
  6055  	for {
  6056  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  6057  		offset += l
  6058  		if err != nil {
  6059  			goto ReadFieldBeginError
  6060  		}
  6061  		if fieldTypeId == thrift.STOP {
  6062  			break
  6063  		}
  6064  		switch fieldId {
  6065  		case 1:
  6066  			if fieldTypeId == thrift.STRING {
  6067  				l, err = p.FastReadField1(buf[offset:])
  6068  				offset += l
  6069  				if err != nil {
  6070  					goto ReadFieldError
  6071  				}
  6072  				issetQuery = true
  6073  			} else {
  6074  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6075  				offset += l
  6076  				if err != nil {
  6077  					goto SkipFieldError
  6078  				}
  6079  			}
  6080  		case 2:
  6081  			if fieldTypeId == thrift.STRING {
  6082  				l, err = p.FastReadField2(buf[offset:])
  6083  				offset += l
  6084  				if err != nil {
  6085  					goto ReadFieldError
  6086  				}
  6087  			} else {
  6088  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6089  				offset += l
  6090  				if err != nil {
  6091  					goto SkipFieldError
  6092  				}
  6093  			}
  6094  		case 3:
  6095  			if fieldTypeId == thrift.STRUCT {
  6096  				l, err = p.FastReadField3(buf[offset:])
  6097  				offset += l
  6098  				if err != nil {
  6099  					goto ReadFieldError
  6100  				}
  6101  			} else {
  6102  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6103  				offset += l
  6104  				if err != nil {
  6105  					goto SkipFieldError
  6106  				}
  6107  			}
  6108  		default:
  6109  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6110  			offset += l
  6111  			if err != nil {
  6112  				goto SkipFieldError
  6113  			}
  6114  		}
  6115  
  6116  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  6117  		offset += l
  6118  		if err != nil {
  6119  			goto ReadFieldEndError
  6120  		}
  6121  	}
  6122  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  6123  	offset += l
  6124  	if err != nil {
  6125  		goto ReadStructEndError
  6126  	}
  6127  
  6128  	if !issetQuery {
  6129  		fieldId = 1
  6130  		goto RequiredFieldNotSetError
  6131  	}
  6132  	return offset, nil
  6133  ReadStructBeginError:
  6134  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  6135  ReadFieldBeginError:
  6136  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  6137  ReadFieldError:
  6138  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleDynamicStruct[fieldId]), err)
  6139  SkipFieldError:
  6140  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  6141  ReadFieldEndError:
  6142  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  6143  ReadStructEndError:
  6144  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  6145  RequiredFieldNotSetError:
  6146  	return offset, thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field %s is not set", fieldIDToName_ExampleDynamicStruct[fieldId]))
  6147  }
  6148  
  6149  func (p *ExampleDynamicStruct) FastReadField1(buf []byte) (int, error) {
  6150  	offset := 0
  6151  
  6152  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  6153  		return offset, err
  6154  	} else {
  6155  		offset += l
  6156  
  6157  		p.Query = v
  6158  
  6159  	}
  6160  	return offset, nil
  6161  }
  6162  
  6163  func (p *ExampleDynamicStruct) FastReadField2(buf []byte) (int, error) {
  6164  	offset := 0
  6165  
  6166  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  6167  		return offset, err
  6168  	} else {
  6169  		offset += l
  6170  
  6171  		p.JSON = v
  6172  
  6173  	}
  6174  	return offset, nil
  6175  }
  6176  
  6177  func (p *ExampleDynamicStruct) FastReadField3(buf []byte) (int, error) {
  6178  	offset := 0
  6179  	p.InnerStruct = NewInnerStruct()
  6180  	if l, err := p.InnerStruct.FastRead(buf[offset:]); err != nil {
  6181  		return offset, err
  6182  	} else {
  6183  		offset += l
  6184  	}
  6185  	return offset, nil
  6186  }
  6187  
  6188  // for compatibility
  6189  func (p *ExampleDynamicStruct) FastWrite(buf []byte) int {
  6190  	return 0
  6191  }
  6192  
  6193  func (p *ExampleDynamicStruct) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6194  	offset := 0
  6195  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleDynamicStruct")
  6196  	if p != nil {
  6197  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  6198  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  6199  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  6200  	}
  6201  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  6202  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  6203  	return offset
  6204  }
  6205  
  6206  func (p *ExampleDynamicStruct) BLength() int {
  6207  	l := 0
  6208  	l += bthrift.Binary.StructBeginLength("ExampleDynamicStruct")
  6209  	if p != nil {
  6210  		l += p.field1Length()
  6211  		l += p.field2Length()
  6212  		l += p.field3Length()
  6213  	}
  6214  	l += bthrift.Binary.FieldStopLength()
  6215  	l += bthrift.Binary.StructEndLength()
  6216  	return l
  6217  }
  6218  
  6219  func (p *ExampleDynamicStruct) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6220  	offset := 0
  6221  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Query", thrift.STRING, 1)
  6222  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Query)
  6223  
  6224  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6225  	return offset
  6226  }
  6227  
  6228  func (p *ExampleDynamicStruct) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6229  	offset := 0
  6230  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "JSON", thrift.STRING, 2)
  6231  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.JSON)
  6232  
  6233  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6234  	return offset
  6235  }
  6236  
  6237  func (p *ExampleDynamicStruct) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6238  	offset := 0
  6239  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "InnerStruct", thrift.STRUCT, 3)
  6240  	offset += p.InnerStruct.FastWriteNocopy(buf[offset:], binaryWriter)
  6241  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6242  	return offset
  6243  }
  6244  
  6245  func (p *ExampleDynamicStruct) field1Length() int {
  6246  	l := 0
  6247  	l += bthrift.Binary.FieldBeginLength("Query", thrift.STRING, 1)
  6248  	l += bthrift.Binary.StringLengthNocopy(p.Query)
  6249  
  6250  	l += bthrift.Binary.FieldEndLength()
  6251  	return l
  6252  }
  6253  
  6254  func (p *ExampleDynamicStruct) field2Length() int {
  6255  	l := 0
  6256  	l += bthrift.Binary.FieldBeginLength("JSON", thrift.STRING, 2)
  6257  	l += bthrift.Binary.StringLengthNocopy(p.JSON)
  6258  
  6259  	l += bthrift.Binary.FieldEndLength()
  6260  	return l
  6261  }
  6262  
  6263  func (p *ExampleDynamicStruct) field3Length() int {
  6264  	l := 0
  6265  	l += bthrift.Binary.FieldBeginLength("InnerStruct", thrift.STRUCT, 3)
  6266  	l += p.InnerStruct.BLength()
  6267  	l += bthrift.Binary.FieldEndLength()
  6268  	return l
  6269  }
  6270  
  6271  func (p *ExampleBase64Binary) FastRead(buf []byte) (int, error) {
  6272  	var err error
  6273  	var offset int
  6274  	var l int
  6275  	var fieldTypeId thrift.TType
  6276  	var fieldId int16
  6277  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  6278  	offset += l
  6279  	if err != nil {
  6280  		goto ReadStructBeginError
  6281  	}
  6282  
  6283  	for {
  6284  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  6285  		offset += l
  6286  		if err != nil {
  6287  			goto ReadFieldBeginError
  6288  		}
  6289  		if fieldTypeId == thrift.STOP {
  6290  			break
  6291  		}
  6292  		switch fieldId {
  6293  		case 1:
  6294  			if fieldTypeId == thrift.STRING {
  6295  				l, err = p.FastReadField1(buf[offset:])
  6296  				offset += l
  6297  				if err != nil {
  6298  					goto ReadFieldError
  6299  				}
  6300  			} else {
  6301  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6302  				offset += l
  6303  				if err != nil {
  6304  					goto SkipFieldError
  6305  				}
  6306  			}
  6307  		case 2:
  6308  			if fieldTypeId == thrift.STRING {
  6309  				l, err = p.FastReadField2(buf[offset:])
  6310  				offset += l
  6311  				if err != nil {
  6312  					goto ReadFieldError
  6313  				}
  6314  			} else {
  6315  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6316  				offset += l
  6317  				if err != nil {
  6318  					goto SkipFieldError
  6319  				}
  6320  			}
  6321  		default:
  6322  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6323  			offset += l
  6324  			if err != nil {
  6325  				goto SkipFieldError
  6326  			}
  6327  		}
  6328  
  6329  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  6330  		offset += l
  6331  		if err != nil {
  6332  			goto ReadFieldEndError
  6333  		}
  6334  	}
  6335  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  6336  	offset += l
  6337  	if err != nil {
  6338  		goto ReadStructEndError
  6339  	}
  6340  
  6341  	return offset, nil
  6342  ReadStructBeginError:
  6343  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  6344  ReadFieldBeginError:
  6345  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  6346  ReadFieldError:
  6347  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleBase64Binary[fieldId]), err)
  6348  SkipFieldError:
  6349  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  6350  ReadFieldEndError:
  6351  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  6352  ReadStructEndError:
  6353  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  6354  }
  6355  
  6356  func (p *ExampleBase64Binary) FastReadField1(buf []byte) (int, error) {
  6357  	offset := 0
  6358  
  6359  	if v, l, err := bthrift.Binary.ReadBinary(buf[offset:]); err != nil {
  6360  		return offset, err
  6361  	} else {
  6362  		offset += l
  6363  
  6364  		p.Binary = []byte(v)
  6365  
  6366  	}
  6367  	return offset, nil
  6368  }
  6369  
  6370  func (p *ExampleBase64Binary) FastReadField2(buf []byte) (int, error) {
  6371  	offset := 0
  6372  
  6373  	if v, l, err := bthrift.Binary.ReadBinary(buf[offset:]); err != nil {
  6374  		return offset, err
  6375  	} else {
  6376  		offset += l
  6377  
  6378  		p.Binary2 = []byte(v)
  6379  
  6380  	}
  6381  	return offset, nil
  6382  }
  6383  
  6384  // for compatibility
  6385  func (p *ExampleBase64Binary) FastWrite(buf []byte) int {
  6386  	return 0
  6387  }
  6388  
  6389  func (p *ExampleBase64Binary) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6390  	offset := 0
  6391  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleBase64Binary")
  6392  	if p != nil {
  6393  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  6394  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  6395  	}
  6396  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  6397  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  6398  	return offset
  6399  }
  6400  
  6401  func (p *ExampleBase64Binary) BLength() int {
  6402  	l := 0
  6403  	l += bthrift.Binary.StructBeginLength("ExampleBase64Binary")
  6404  	if p != nil {
  6405  		l += p.field1Length()
  6406  		l += p.field2Length()
  6407  	}
  6408  	l += bthrift.Binary.FieldStopLength()
  6409  	l += bthrift.Binary.StructEndLength()
  6410  	return l
  6411  }
  6412  
  6413  func (p *ExampleBase64Binary) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6414  	offset := 0
  6415  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Binary", thrift.STRING, 1)
  6416  	offset += bthrift.Binary.WriteBinaryNocopy(buf[offset:], binaryWriter, []byte(p.Binary))
  6417  
  6418  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6419  	return offset
  6420  }
  6421  
  6422  func (p *ExampleBase64Binary) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6423  	offset := 0
  6424  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "Binary2", thrift.STRING, 2)
  6425  	offset += bthrift.Binary.WriteBinaryNocopy(buf[offset:], binaryWriter, []byte(p.Binary2))
  6426  
  6427  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6428  	return offset
  6429  }
  6430  
  6431  func (p *ExampleBase64Binary) field1Length() int {
  6432  	l := 0
  6433  	l += bthrift.Binary.FieldBeginLength("Binary", thrift.STRING, 1)
  6434  	l += bthrift.Binary.BinaryLengthNocopy([]byte(p.Binary))
  6435  
  6436  	l += bthrift.Binary.FieldEndLength()
  6437  	return l
  6438  }
  6439  
  6440  func (p *ExampleBase64Binary) field2Length() int {
  6441  	l := 0
  6442  	l += bthrift.Binary.FieldBeginLength("Binary2", thrift.STRING, 2)
  6443  	l += bthrift.Binary.BinaryLengthNocopy([]byte(p.Binary2))
  6444  
  6445  	l += bthrift.Binary.FieldEndLength()
  6446  	return l
  6447  }
  6448  
  6449  func (p *ExampleDefaultValue) FastRead(buf []byte) (int, error) {
  6450  	var err error
  6451  	var offset int
  6452  	var l int
  6453  	var fieldTypeId thrift.TType
  6454  	var fieldId int16
  6455  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  6456  	offset += l
  6457  	if err != nil {
  6458  		goto ReadStructBeginError
  6459  	}
  6460  
  6461  	for {
  6462  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  6463  		offset += l
  6464  		if err != nil {
  6465  			goto ReadFieldBeginError
  6466  		}
  6467  		if fieldTypeId == thrift.STOP {
  6468  			break
  6469  		}
  6470  		switch fieldId {
  6471  		case 1:
  6472  			if fieldTypeId == thrift.STRING {
  6473  				l, err = p.FastReadField1(buf[offset:])
  6474  				offset += l
  6475  				if err != nil {
  6476  					goto ReadFieldError
  6477  				}
  6478  			} else {
  6479  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6480  				offset += l
  6481  				if err != nil {
  6482  					goto SkipFieldError
  6483  				}
  6484  			}
  6485  		case 2:
  6486  			if fieldTypeId == thrift.I32 {
  6487  				l, err = p.FastReadField2(buf[offset:])
  6488  				offset += l
  6489  				if err != nil {
  6490  					goto ReadFieldError
  6491  				}
  6492  			} else {
  6493  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6494  				offset += l
  6495  				if err != nil {
  6496  					goto SkipFieldError
  6497  				}
  6498  			}
  6499  		case 3:
  6500  			if fieldTypeId == thrift.DOUBLE {
  6501  				l, err = p.FastReadField3(buf[offset:])
  6502  				offset += l
  6503  				if err != nil {
  6504  					goto ReadFieldError
  6505  				}
  6506  			} else {
  6507  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6508  				offset += l
  6509  				if err != nil {
  6510  					goto SkipFieldError
  6511  				}
  6512  			}
  6513  		case 4:
  6514  			if fieldTypeId == thrift.STRING {
  6515  				l, err = p.FastReadField4(buf[offset:])
  6516  				offset += l
  6517  				if err != nil {
  6518  					goto ReadFieldError
  6519  				}
  6520  			} else {
  6521  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6522  				offset += l
  6523  				if err != nil {
  6524  					goto SkipFieldError
  6525  				}
  6526  			}
  6527  		default:
  6528  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6529  			offset += l
  6530  			if err != nil {
  6531  				goto SkipFieldError
  6532  			}
  6533  		}
  6534  
  6535  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  6536  		offset += l
  6537  		if err != nil {
  6538  			goto ReadFieldEndError
  6539  		}
  6540  	}
  6541  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  6542  	offset += l
  6543  	if err != nil {
  6544  		goto ReadStructEndError
  6545  	}
  6546  
  6547  	return offset, nil
  6548  ReadStructBeginError:
  6549  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  6550  ReadFieldBeginError:
  6551  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  6552  ReadFieldError:
  6553  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleDefaultValue[fieldId]), err)
  6554  SkipFieldError:
  6555  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  6556  ReadFieldEndError:
  6557  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  6558  ReadStructEndError:
  6559  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  6560  }
  6561  
  6562  func (p *ExampleDefaultValue) FastReadField1(buf []byte) (int, error) {
  6563  	offset := 0
  6564  
  6565  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  6566  		return offset, err
  6567  	} else {
  6568  		offset += l
  6569  
  6570  		p.A = v
  6571  
  6572  	}
  6573  	return offset, nil
  6574  }
  6575  
  6576  func (p *ExampleDefaultValue) FastReadField2(buf []byte) (int, error) {
  6577  	offset := 0
  6578  
  6579  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  6580  		return offset, err
  6581  	} else {
  6582  		offset += l
  6583  
  6584  		p.B = v
  6585  
  6586  	}
  6587  	return offset, nil
  6588  }
  6589  
  6590  func (p *ExampleDefaultValue) FastReadField3(buf []byte) (int, error) {
  6591  	offset := 0
  6592  
  6593  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  6594  		return offset, err
  6595  	} else {
  6596  		offset += l
  6597  
  6598  		p.C = v
  6599  
  6600  	}
  6601  	return offset, nil
  6602  }
  6603  
  6604  func (p *ExampleDefaultValue) FastReadField4(buf []byte) (int, error) {
  6605  	offset := 0
  6606  
  6607  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  6608  		return offset, err
  6609  	} else {
  6610  		offset += l
  6611  
  6612  		p.D = v
  6613  
  6614  	}
  6615  	return offset, nil
  6616  }
  6617  
  6618  // for compatibility
  6619  func (p *ExampleDefaultValue) FastWrite(buf []byte) int {
  6620  	return 0
  6621  }
  6622  
  6623  func (p *ExampleDefaultValue) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6624  	offset := 0
  6625  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleDefaultValue")
  6626  	if p != nil {
  6627  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  6628  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  6629  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  6630  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
  6631  	}
  6632  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  6633  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  6634  	return offset
  6635  }
  6636  
  6637  func (p *ExampleDefaultValue) BLength() int {
  6638  	l := 0
  6639  	l += bthrift.Binary.StructBeginLength("ExampleDefaultValue")
  6640  	if p != nil {
  6641  		l += p.field1Length()
  6642  		l += p.field2Length()
  6643  		l += p.field3Length()
  6644  		l += p.field4Length()
  6645  	}
  6646  	l += bthrift.Binary.FieldStopLength()
  6647  	l += bthrift.Binary.StructEndLength()
  6648  	return l
  6649  }
  6650  
  6651  func (p *ExampleDefaultValue) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6652  	offset := 0
  6653  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "A", thrift.STRING, 1)
  6654  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.A)
  6655  
  6656  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6657  	return offset
  6658  }
  6659  
  6660  func (p *ExampleDefaultValue) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6661  	offset := 0
  6662  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "B", thrift.I32, 2)
  6663  	offset += bthrift.Binary.WriteI32(buf[offset:], p.B)
  6664  
  6665  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6666  	return offset
  6667  }
  6668  
  6669  func (p *ExampleDefaultValue) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6670  	offset := 0
  6671  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "C", thrift.DOUBLE, 3)
  6672  	offset += bthrift.Binary.WriteDouble(buf[offset:], p.C)
  6673  
  6674  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6675  	return offset
  6676  }
  6677  
  6678  func (p *ExampleDefaultValue) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6679  	offset := 0
  6680  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "D", thrift.STRING, 4)
  6681  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.D)
  6682  
  6683  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  6684  	return offset
  6685  }
  6686  
  6687  func (p *ExampleDefaultValue) field1Length() int {
  6688  	l := 0
  6689  	l += bthrift.Binary.FieldBeginLength("A", thrift.STRING, 1)
  6690  	l += bthrift.Binary.StringLengthNocopy(p.A)
  6691  
  6692  	l += bthrift.Binary.FieldEndLength()
  6693  	return l
  6694  }
  6695  
  6696  func (p *ExampleDefaultValue) field2Length() int {
  6697  	l := 0
  6698  	l += bthrift.Binary.FieldBeginLength("B", thrift.I32, 2)
  6699  	l += bthrift.Binary.I32Length(p.B)
  6700  
  6701  	l += bthrift.Binary.FieldEndLength()
  6702  	return l
  6703  }
  6704  
  6705  func (p *ExampleDefaultValue) field3Length() int {
  6706  	l := 0
  6707  	l += bthrift.Binary.FieldBeginLength("C", thrift.DOUBLE, 3)
  6708  	l += bthrift.Binary.DoubleLength(p.C)
  6709  
  6710  	l += bthrift.Binary.FieldEndLength()
  6711  	return l
  6712  }
  6713  
  6714  func (p *ExampleDefaultValue) field4Length() int {
  6715  	l := 0
  6716  	l += bthrift.Binary.FieldBeginLength("D", thrift.STRING, 4)
  6717  	l += bthrift.Binary.StringLengthNocopy(p.D)
  6718  
  6719  	l += bthrift.Binary.FieldEndLength()
  6720  	return l
  6721  }
  6722  
  6723  func (p *ExampleOptionalDefaultValue) FastRead(buf []byte) (int, error) {
  6724  	var err error
  6725  	var offset int
  6726  	var l int
  6727  	var fieldTypeId thrift.TType
  6728  	var fieldId int16
  6729  	var issetB bool = false
  6730  	var issetD bool = false
  6731  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  6732  	offset += l
  6733  	if err != nil {
  6734  		goto ReadStructBeginError
  6735  	}
  6736  
  6737  	for {
  6738  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  6739  		offset += l
  6740  		if err != nil {
  6741  			goto ReadFieldBeginError
  6742  		}
  6743  		if fieldTypeId == thrift.STOP {
  6744  			break
  6745  		}
  6746  		switch fieldId {
  6747  		case 1:
  6748  			if fieldTypeId == thrift.STRING {
  6749  				l, err = p.FastReadField1(buf[offset:])
  6750  				offset += l
  6751  				if err != nil {
  6752  					goto ReadFieldError
  6753  				}
  6754  			} else {
  6755  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6756  				offset += l
  6757  				if err != nil {
  6758  					goto SkipFieldError
  6759  				}
  6760  			}
  6761  		case 2:
  6762  			if fieldTypeId == thrift.I32 {
  6763  				l, err = p.FastReadField2(buf[offset:])
  6764  				offset += l
  6765  				if err != nil {
  6766  					goto ReadFieldError
  6767  				}
  6768  				issetB = true
  6769  			} else {
  6770  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6771  				offset += l
  6772  				if err != nil {
  6773  					goto SkipFieldError
  6774  				}
  6775  			}
  6776  		case 3:
  6777  			if fieldTypeId == thrift.DOUBLE {
  6778  				l, err = p.FastReadField3(buf[offset:])
  6779  				offset += l
  6780  				if err != nil {
  6781  					goto ReadFieldError
  6782  				}
  6783  			} else {
  6784  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6785  				offset += l
  6786  				if err != nil {
  6787  					goto SkipFieldError
  6788  				}
  6789  			}
  6790  		case 4:
  6791  			if fieldTypeId == thrift.STRING {
  6792  				l, err = p.FastReadField4(buf[offset:])
  6793  				offset += l
  6794  				if err != nil {
  6795  					goto ReadFieldError
  6796  				}
  6797  				issetD = true
  6798  			} else {
  6799  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6800  				offset += l
  6801  				if err != nil {
  6802  					goto SkipFieldError
  6803  				}
  6804  			}
  6805  		case 5:
  6806  			if fieldTypeId == thrift.STRING {
  6807  				l, err = p.FastReadField5(buf[offset:])
  6808  				offset += l
  6809  				if err != nil {
  6810  					goto ReadFieldError
  6811  				}
  6812  			} else {
  6813  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6814  				offset += l
  6815  				if err != nil {
  6816  					goto SkipFieldError
  6817  				}
  6818  			}
  6819  		case 6:
  6820  			if fieldTypeId == thrift.STRING {
  6821  				l, err = p.FastReadField6(buf[offset:])
  6822  				offset += l
  6823  				if err != nil {
  6824  					goto ReadFieldError
  6825  				}
  6826  			} else {
  6827  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6828  				offset += l
  6829  				if err != nil {
  6830  					goto SkipFieldError
  6831  				}
  6832  			}
  6833  		default:
  6834  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  6835  			offset += l
  6836  			if err != nil {
  6837  				goto SkipFieldError
  6838  			}
  6839  		}
  6840  
  6841  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  6842  		offset += l
  6843  		if err != nil {
  6844  			goto ReadFieldEndError
  6845  		}
  6846  	}
  6847  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  6848  	offset += l
  6849  	if err != nil {
  6850  		goto ReadStructEndError
  6851  	}
  6852  
  6853  	if !issetB {
  6854  		fieldId = 2
  6855  		goto RequiredFieldNotSetError
  6856  	}
  6857  
  6858  	if !issetD {
  6859  		fieldId = 4
  6860  		goto RequiredFieldNotSetError
  6861  	}
  6862  	return offset, nil
  6863  ReadStructBeginError:
  6864  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  6865  ReadFieldBeginError:
  6866  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  6867  ReadFieldError:
  6868  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleOptionalDefaultValue[fieldId]), err)
  6869  SkipFieldError:
  6870  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  6871  ReadFieldEndError:
  6872  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  6873  ReadStructEndError:
  6874  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  6875  RequiredFieldNotSetError:
  6876  	return offset, thrift.NewTProtocolExceptionWithType(thrift.INVALID_DATA, fmt.Errorf("Required field %s is not set", fieldIDToName_ExampleOptionalDefaultValue[fieldId]))
  6877  }
  6878  
  6879  func (p *ExampleOptionalDefaultValue) FastReadField1(buf []byte) (int, error) {
  6880  	offset := 0
  6881  
  6882  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  6883  		return offset, err
  6884  	} else {
  6885  		offset += l
  6886  
  6887  		p.A = v
  6888  
  6889  	}
  6890  	return offset, nil
  6891  }
  6892  
  6893  func (p *ExampleOptionalDefaultValue) FastReadField2(buf []byte) (int, error) {
  6894  	offset := 0
  6895  
  6896  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  6897  		return offset, err
  6898  	} else {
  6899  		offset += l
  6900  
  6901  		p.B = v
  6902  
  6903  	}
  6904  	return offset, nil
  6905  }
  6906  
  6907  func (p *ExampleOptionalDefaultValue) FastReadField3(buf []byte) (int, error) {
  6908  	offset := 0
  6909  
  6910  	if v, l, err := bthrift.Binary.ReadDouble(buf[offset:]); err != nil {
  6911  		return offset, err
  6912  	} else {
  6913  		offset += l
  6914  
  6915  		p.C = v
  6916  
  6917  	}
  6918  	return offset, nil
  6919  }
  6920  
  6921  func (p *ExampleOptionalDefaultValue) FastReadField4(buf []byte) (int, error) {
  6922  	offset := 0
  6923  
  6924  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  6925  		return offset, err
  6926  	} else {
  6927  		offset += l
  6928  
  6929  		p.D = v
  6930  
  6931  	}
  6932  	return offset, nil
  6933  }
  6934  
  6935  func (p *ExampleOptionalDefaultValue) FastReadField5(buf []byte) (int, error) {
  6936  	offset := 0
  6937  
  6938  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  6939  		return offset, err
  6940  	} else {
  6941  		offset += l
  6942  		p.E = &v
  6943  
  6944  	}
  6945  	return offset, nil
  6946  }
  6947  
  6948  func (p *ExampleOptionalDefaultValue) FastReadField6(buf []byte) (int, error) {
  6949  	offset := 0
  6950  
  6951  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  6952  		return offset, err
  6953  	} else {
  6954  		offset += l
  6955  		p.F = &v
  6956  
  6957  	}
  6958  	return offset, nil
  6959  }
  6960  
  6961  // for compatibility
  6962  func (p *ExampleOptionalDefaultValue) FastWrite(buf []byte) int {
  6963  	return 0
  6964  }
  6965  
  6966  func (p *ExampleOptionalDefaultValue) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6967  	offset := 0
  6968  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleOptionalDefaultValue")
  6969  	if p != nil {
  6970  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  6971  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  6972  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  6973  		offset += p.fastWriteField4(buf[offset:], binaryWriter)
  6974  		offset += p.fastWriteField5(buf[offset:], binaryWriter)
  6975  		offset += p.fastWriteField6(buf[offset:], binaryWriter)
  6976  	}
  6977  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  6978  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  6979  	return offset
  6980  }
  6981  
  6982  func (p *ExampleOptionalDefaultValue) BLength() int {
  6983  	l := 0
  6984  	l += bthrift.Binary.StructBeginLength("ExampleOptionalDefaultValue")
  6985  	if p != nil {
  6986  		l += p.field1Length()
  6987  		l += p.field2Length()
  6988  		l += p.field3Length()
  6989  		l += p.field4Length()
  6990  		l += p.field5Length()
  6991  		l += p.field6Length()
  6992  	}
  6993  	l += bthrift.Binary.FieldStopLength()
  6994  	l += bthrift.Binary.StructEndLength()
  6995  	return l
  6996  }
  6997  
  6998  func (p *ExampleOptionalDefaultValue) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  6999  	offset := 0
  7000  	if p.IsSetA() {
  7001  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "A", thrift.STRING, 1)
  7002  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.A)
  7003  
  7004  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7005  	}
  7006  	return offset
  7007  }
  7008  
  7009  func (p *ExampleOptionalDefaultValue) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7010  	offset := 0
  7011  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "B", thrift.I32, 2)
  7012  	offset += bthrift.Binary.WriteI32(buf[offset:], p.B)
  7013  
  7014  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7015  	return offset
  7016  }
  7017  
  7018  func (p *ExampleOptionalDefaultValue) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7019  	offset := 0
  7020  	if p.IsSetC() {
  7021  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "C", thrift.DOUBLE, 3)
  7022  		offset += bthrift.Binary.WriteDouble(buf[offset:], p.C)
  7023  
  7024  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7025  	}
  7026  	return offset
  7027  }
  7028  
  7029  func (p *ExampleOptionalDefaultValue) fastWriteField4(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7030  	offset := 0
  7031  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "D", thrift.STRING, 4)
  7032  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.D)
  7033  
  7034  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7035  	return offset
  7036  }
  7037  
  7038  func (p *ExampleOptionalDefaultValue) fastWriteField5(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7039  	offset := 0
  7040  	if p.IsSetE() {
  7041  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "E", thrift.STRING, 5)
  7042  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, *p.E)
  7043  
  7044  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7045  	}
  7046  	return offset
  7047  }
  7048  
  7049  func (p *ExampleOptionalDefaultValue) fastWriteField6(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7050  	offset := 0
  7051  	if p.IsSetF() {
  7052  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "F", thrift.STRING, 6)
  7053  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, *p.F)
  7054  
  7055  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7056  	}
  7057  	return offset
  7058  }
  7059  
  7060  func (p *ExampleOptionalDefaultValue) field1Length() int {
  7061  	l := 0
  7062  	if p.IsSetA() {
  7063  		l += bthrift.Binary.FieldBeginLength("A", thrift.STRING, 1)
  7064  		l += bthrift.Binary.StringLengthNocopy(p.A)
  7065  
  7066  		l += bthrift.Binary.FieldEndLength()
  7067  	}
  7068  	return l
  7069  }
  7070  
  7071  func (p *ExampleOptionalDefaultValue) field2Length() int {
  7072  	l := 0
  7073  	l += bthrift.Binary.FieldBeginLength("B", thrift.I32, 2)
  7074  	l += bthrift.Binary.I32Length(p.B)
  7075  
  7076  	l += bthrift.Binary.FieldEndLength()
  7077  	return l
  7078  }
  7079  
  7080  func (p *ExampleOptionalDefaultValue) field3Length() int {
  7081  	l := 0
  7082  	if p.IsSetC() {
  7083  		l += bthrift.Binary.FieldBeginLength("C", thrift.DOUBLE, 3)
  7084  		l += bthrift.Binary.DoubleLength(p.C)
  7085  
  7086  		l += bthrift.Binary.FieldEndLength()
  7087  	}
  7088  	return l
  7089  }
  7090  
  7091  func (p *ExampleOptionalDefaultValue) field4Length() int {
  7092  	l := 0
  7093  	l += bthrift.Binary.FieldBeginLength("D", thrift.STRING, 4)
  7094  	l += bthrift.Binary.StringLengthNocopy(p.D)
  7095  
  7096  	l += bthrift.Binary.FieldEndLength()
  7097  	return l
  7098  }
  7099  
  7100  func (p *ExampleOptionalDefaultValue) field5Length() int {
  7101  	l := 0
  7102  	if p.IsSetE() {
  7103  		l += bthrift.Binary.FieldBeginLength("E", thrift.STRING, 5)
  7104  		l += bthrift.Binary.StringLengthNocopy(*p.E)
  7105  
  7106  		l += bthrift.Binary.FieldEndLength()
  7107  	}
  7108  	return l
  7109  }
  7110  
  7111  func (p *ExampleOptionalDefaultValue) field6Length() int {
  7112  	l := 0
  7113  	if p.IsSetF() {
  7114  		l += bthrift.Binary.FieldBeginLength("F", thrift.STRING, 6)
  7115  		l += bthrift.Binary.StringLengthNocopy(*p.F)
  7116  
  7117  		l += bthrift.Binary.FieldEndLength()
  7118  	}
  7119  	return l
  7120  }
  7121  
  7122  func (p *ExampleNoBodyStruct) FastRead(buf []byte) (int, error) {
  7123  	var err error
  7124  	var offset int
  7125  	var l int
  7126  	var fieldTypeId thrift.TType
  7127  	var fieldId int16
  7128  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  7129  	offset += l
  7130  	if err != nil {
  7131  		goto ReadStructBeginError
  7132  	}
  7133  
  7134  	for {
  7135  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  7136  		offset += l
  7137  		if err != nil {
  7138  			goto ReadFieldBeginError
  7139  		}
  7140  		if fieldTypeId == thrift.STOP {
  7141  			break
  7142  		}
  7143  		switch fieldId {
  7144  		case 1:
  7145  			if fieldTypeId == thrift.STRUCT {
  7146  				l, err = p.FastReadField1(buf[offset:])
  7147  				offset += l
  7148  				if err != nil {
  7149  					goto ReadFieldError
  7150  				}
  7151  			} else {
  7152  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7153  				offset += l
  7154  				if err != nil {
  7155  					goto SkipFieldError
  7156  				}
  7157  			}
  7158  		default:
  7159  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7160  			offset += l
  7161  			if err != nil {
  7162  				goto SkipFieldError
  7163  			}
  7164  		}
  7165  
  7166  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  7167  		offset += l
  7168  		if err != nil {
  7169  			goto ReadFieldEndError
  7170  		}
  7171  	}
  7172  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  7173  	offset += l
  7174  	if err != nil {
  7175  		goto ReadStructEndError
  7176  	}
  7177  
  7178  	return offset, nil
  7179  ReadStructBeginError:
  7180  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  7181  ReadFieldBeginError:
  7182  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  7183  ReadFieldError:
  7184  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleNoBodyStruct[fieldId]), err)
  7185  SkipFieldError:
  7186  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  7187  ReadFieldEndError:
  7188  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  7189  ReadStructEndError:
  7190  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7191  }
  7192  
  7193  func (p *ExampleNoBodyStruct) FastReadField1(buf []byte) (int, error) {
  7194  	offset := 0
  7195  	p.NoBodyStruct = NewNoBodyStruct()
  7196  	if l, err := p.NoBodyStruct.FastRead(buf[offset:]); err != nil {
  7197  		return offset, err
  7198  	} else {
  7199  		offset += l
  7200  	}
  7201  	return offset, nil
  7202  }
  7203  
  7204  // for compatibility
  7205  func (p *ExampleNoBodyStruct) FastWrite(buf []byte) int {
  7206  	return 0
  7207  }
  7208  
  7209  func (p *ExampleNoBodyStruct) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7210  	offset := 0
  7211  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleNoBodyStruct")
  7212  	if p != nil {
  7213  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  7214  	}
  7215  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  7216  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  7217  	return offset
  7218  }
  7219  
  7220  func (p *ExampleNoBodyStruct) BLength() int {
  7221  	l := 0
  7222  	l += bthrift.Binary.StructBeginLength("ExampleNoBodyStruct")
  7223  	if p != nil {
  7224  		l += p.field1Length()
  7225  	}
  7226  	l += bthrift.Binary.FieldStopLength()
  7227  	l += bthrift.Binary.StructEndLength()
  7228  	return l
  7229  }
  7230  
  7231  func (p *ExampleNoBodyStruct) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7232  	offset := 0
  7233  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "NoBodyStruct", thrift.STRUCT, 1)
  7234  	offset += p.NoBodyStruct.FastWriteNocopy(buf[offset:], binaryWriter)
  7235  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7236  	return offset
  7237  }
  7238  
  7239  func (p *ExampleNoBodyStruct) field1Length() int {
  7240  	l := 0
  7241  	l += bthrift.Binary.FieldBeginLength("NoBodyStruct", thrift.STRUCT, 1)
  7242  	l += p.NoBodyStruct.BLength()
  7243  	l += bthrift.Binary.FieldEndLength()
  7244  	return l
  7245  }
  7246  
  7247  func (p *NoBodyStruct) FastRead(buf []byte) (int, error) {
  7248  	var err error
  7249  	var offset int
  7250  	var l int
  7251  	var fieldTypeId thrift.TType
  7252  	var fieldId int16
  7253  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  7254  	offset += l
  7255  	if err != nil {
  7256  		goto ReadStructBeginError
  7257  	}
  7258  
  7259  	for {
  7260  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  7261  		offset += l
  7262  		if err != nil {
  7263  			goto ReadFieldBeginError
  7264  		}
  7265  		if fieldTypeId == thrift.STOP {
  7266  			break
  7267  		}
  7268  		switch fieldId {
  7269  		case 1:
  7270  			if fieldTypeId == thrift.I32 {
  7271  				l, err = p.FastReadField1(buf[offset:])
  7272  				offset += l
  7273  				if err != nil {
  7274  					goto ReadFieldError
  7275  				}
  7276  			} else {
  7277  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7278  				offset += l
  7279  				if err != nil {
  7280  					goto SkipFieldError
  7281  				}
  7282  			}
  7283  		case 2:
  7284  			if fieldTypeId == thrift.I32 {
  7285  				l, err = p.FastReadField2(buf[offset:])
  7286  				offset += l
  7287  				if err != nil {
  7288  					goto ReadFieldError
  7289  				}
  7290  			} else {
  7291  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7292  				offset += l
  7293  				if err != nil {
  7294  					goto SkipFieldError
  7295  				}
  7296  			}
  7297  		case 3:
  7298  			if fieldTypeId == thrift.I32 {
  7299  				l, err = p.FastReadField3(buf[offset:])
  7300  				offset += l
  7301  				if err != nil {
  7302  					goto ReadFieldError
  7303  				}
  7304  			} else {
  7305  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7306  				offset += l
  7307  				if err != nil {
  7308  					goto SkipFieldError
  7309  				}
  7310  			}
  7311  		default:
  7312  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7313  			offset += l
  7314  			if err != nil {
  7315  				goto SkipFieldError
  7316  			}
  7317  		}
  7318  
  7319  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  7320  		offset += l
  7321  		if err != nil {
  7322  			goto ReadFieldEndError
  7323  		}
  7324  	}
  7325  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  7326  	offset += l
  7327  	if err != nil {
  7328  		goto ReadStructEndError
  7329  	}
  7330  
  7331  	return offset, nil
  7332  ReadStructBeginError:
  7333  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  7334  ReadFieldBeginError:
  7335  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  7336  ReadFieldError:
  7337  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_NoBodyStruct[fieldId]), err)
  7338  SkipFieldError:
  7339  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  7340  ReadFieldEndError:
  7341  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  7342  ReadStructEndError:
  7343  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7344  }
  7345  
  7346  func (p *NoBodyStruct) FastReadField1(buf []byte) (int, error) {
  7347  	offset := 0
  7348  
  7349  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  7350  		return offset, err
  7351  	} else {
  7352  		offset += l
  7353  		p.A = &v
  7354  
  7355  	}
  7356  	return offset, nil
  7357  }
  7358  
  7359  func (p *NoBodyStruct) FastReadField2(buf []byte) (int, error) {
  7360  	offset := 0
  7361  
  7362  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  7363  		return offset, err
  7364  	} else {
  7365  		offset += l
  7366  		p.B = &v
  7367  
  7368  	}
  7369  	return offset, nil
  7370  }
  7371  
  7372  func (p *NoBodyStruct) FastReadField3(buf []byte) (int, error) {
  7373  	offset := 0
  7374  
  7375  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  7376  		return offset, err
  7377  	} else {
  7378  		offset += l
  7379  
  7380  		p.C = v
  7381  
  7382  	}
  7383  	return offset, nil
  7384  }
  7385  
  7386  // for compatibility
  7387  func (p *NoBodyStruct) FastWrite(buf []byte) int {
  7388  	return 0
  7389  }
  7390  
  7391  func (p *NoBodyStruct) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7392  	offset := 0
  7393  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "NoBodyStruct")
  7394  	if p != nil {
  7395  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  7396  		offset += p.fastWriteField2(buf[offset:], binaryWriter)
  7397  		offset += p.fastWriteField3(buf[offset:], binaryWriter)
  7398  	}
  7399  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  7400  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  7401  	return offset
  7402  }
  7403  
  7404  func (p *NoBodyStruct) BLength() int {
  7405  	l := 0
  7406  	l += bthrift.Binary.StructBeginLength("NoBodyStruct")
  7407  	if p != nil {
  7408  		l += p.field1Length()
  7409  		l += p.field2Length()
  7410  		l += p.field3Length()
  7411  	}
  7412  	l += bthrift.Binary.FieldStopLength()
  7413  	l += bthrift.Binary.StructEndLength()
  7414  	return l
  7415  }
  7416  
  7417  func (p *NoBodyStruct) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7418  	offset := 0
  7419  	if p.IsSetA() {
  7420  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "A", thrift.I32, 1)
  7421  		offset += bthrift.Binary.WriteI32(buf[offset:], *p.A)
  7422  
  7423  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7424  	}
  7425  	return offset
  7426  }
  7427  
  7428  func (p *NoBodyStruct) fastWriteField2(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7429  	offset := 0
  7430  	if p.IsSetB() {
  7431  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "B", thrift.I32, 2)
  7432  		offset += bthrift.Binary.WriteI32(buf[offset:], *p.B)
  7433  
  7434  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7435  	}
  7436  	return offset
  7437  }
  7438  
  7439  func (p *NoBodyStruct) fastWriteField3(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7440  	offset := 0
  7441  	if p.IsSetC() {
  7442  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "C", thrift.I32, 3)
  7443  		offset += bthrift.Binary.WriteI32(buf[offset:], p.C)
  7444  
  7445  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7446  	}
  7447  	return offset
  7448  }
  7449  
  7450  func (p *NoBodyStruct) field1Length() int {
  7451  	l := 0
  7452  	if p.IsSetA() {
  7453  		l += bthrift.Binary.FieldBeginLength("A", thrift.I32, 1)
  7454  		l += bthrift.Binary.I32Length(*p.A)
  7455  
  7456  		l += bthrift.Binary.FieldEndLength()
  7457  	}
  7458  	return l
  7459  }
  7460  
  7461  func (p *NoBodyStruct) field2Length() int {
  7462  	l := 0
  7463  	if p.IsSetB() {
  7464  		l += bthrift.Binary.FieldBeginLength("B", thrift.I32, 2)
  7465  		l += bthrift.Binary.I32Length(*p.B)
  7466  
  7467  		l += bthrift.Binary.FieldEndLength()
  7468  	}
  7469  	return l
  7470  }
  7471  
  7472  func (p *NoBodyStruct) field3Length() int {
  7473  	l := 0
  7474  	if p.IsSetC() {
  7475  		l += bthrift.Binary.FieldBeginLength("C", thrift.I32, 3)
  7476  		l += bthrift.Binary.I32Length(p.C)
  7477  
  7478  		l += bthrift.Binary.FieldEndLength()
  7479  	}
  7480  	return l
  7481  }
  7482  
  7483  func (p *Exception) FastRead(buf []byte) (int, error) {
  7484  	var err error
  7485  	var offset int
  7486  	var l int
  7487  	var fieldTypeId thrift.TType
  7488  	var fieldId int16
  7489  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  7490  	offset += l
  7491  	if err != nil {
  7492  		goto ReadStructBeginError
  7493  	}
  7494  
  7495  	for {
  7496  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  7497  		offset += l
  7498  		if err != nil {
  7499  			goto ReadFieldBeginError
  7500  		}
  7501  		if fieldTypeId == thrift.STOP {
  7502  			break
  7503  		}
  7504  		switch fieldId {
  7505  		case 1:
  7506  			if fieldTypeId == thrift.I32 {
  7507  				l, err = p.FastReadField1(buf[offset:])
  7508  				offset += l
  7509  				if err != nil {
  7510  					goto ReadFieldError
  7511  				}
  7512  			} else {
  7513  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7514  				offset += l
  7515  				if err != nil {
  7516  					goto SkipFieldError
  7517  				}
  7518  			}
  7519  		case 255:
  7520  			if fieldTypeId == thrift.STRING {
  7521  				l, err = p.FastReadField255(buf[offset:])
  7522  				offset += l
  7523  				if err != nil {
  7524  					goto ReadFieldError
  7525  				}
  7526  			} else {
  7527  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7528  				offset += l
  7529  				if err != nil {
  7530  					goto SkipFieldError
  7531  				}
  7532  			}
  7533  		default:
  7534  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7535  			offset += l
  7536  			if err != nil {
  7537  				goto SkipFieldError
  7538  			}
  7539  		}
  7540  
  7541  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  7542  		offset += l
  7543  		if err != nil {
  7544  			goto ReadFieldEndError
  7545  		}
  7546  	}
  7547  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  7548  	offset += l
  7549  	if err != nil {
  7550  		goto ReadStructEndError
  7551  	}
  7552  
  7553  	return offset, nil
  7554  ReadStructBeginError:
  7555  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  7556  ReadFieldBeginError:
  7557  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  7558  ReadFieldError:
  7559  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_Exception[fieldId]), err)
  7560  SkipFieldError:
  7561  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  7562  ReadFieldEndError:
  7563  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  7564  ReadStructEndError:
  7565  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7566  }
  7567  
  7568  func (p *Exception) FastReadField1(buf []byte) (int, error) {
  7569  	offset := 0
  7570  
  7571  	if v, l, err := bthrift.Binary.ReadI32(buf[offset:]); err != nil {
  7572  		return offset, err
  7573  	} else {
  7574  		offset += l
  7575  
  7576  		p.Code = v
  7577  
  7578  	}
  7579  	return offset, nil
  7580  }
  7581  
  7582  func (p *Exception) FastReadField255(buf []byte) (int, error) {
  7583  	offset := 0
  7584  
  7585  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
  7586  		return offset, err
  7587  	} else {
  7588  		offset += l
  7589  
  7590  		p.Msg = v
  7591  
  7592  	}
  7593  	return offset, nil
  7594  }
  7595  
  7596  // for compatibility
  7597  func (p *Exception) FastWrite(buf []byte) int {
  7598  	return 0
  7599  }
  7600  
  7601  func (p *Exception) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7602  	offset := 0
  7603  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "Exception")
  7604  	if p != nil {
  7605  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  7606  		offset += p.fastWriteField255(buf[offset:], binaryWriter)
  7607  	}
  7608  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  7609  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  7610  	return offset
  7611  }
  7612  
  7613  func (p *Exception) BLength() int {
  7614  	l := 0
  7615  	l += bthrift.Binary.StructBeginLength("Exception")
  7616  	if p != nil {
  7617  		l += p.field1Length()
  7618  		l += p.field255Length()
  7619  	}
  7620  	l += bthrift.Binary.FieldStopLength()
  7621  	l += bthrift.Binary.StructEndLength()
  7622  	return l
  7623  }
  7624  
  7625  func (p *Exception) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7626  	offset := 0
  7627  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "code", thrift.I32, 1)
  7628  	offset += bthrift.Binary.WriteI32(buf[offset:], p.Code)
  7629  
  7630  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7631  	return offset
  7632  }
  7633  
  7634  func (p *Exception) fastWriteField255(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7635  	offset := 0
  7636  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "msg", thrift.STRING, 255)
  7637  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Msg)
  7638  
  7639  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7640  	return offset
  7641  }
  7642  
  7643  func (p *Exception) field1Length() int {
  7644  	l := 0
  7645  	l += bthrift.Binary.FieldBeginLength("code", thrift.I32, 1)
  7646  	l += bthrift.Binary.I32Length(p.Code)
  7647  
  7648  	l += bthrift.Binary.FieldEndLength()
  7649  	return l
  7650  }
  7651  
  7652  func (p *Exception) field255Length() int {
  7653  	l := 0
  7654  	l += bthrift.Binary.FieldBeginLength("msg", thrift.STRING, 255)
  7655  	l += bthrift.Binary.StringLengthNocopy(p.Msg)
  7656  
  7657  	l += bthrift.Binary.FieldEndLength()
  7658  	return l
  7659  }
  7660  
  7661  func (p *ExampleServiceExampleMethodArgs) FastRead(buf []byte) (int, error) {
  7662  	var err error
  7663  	var offset int
  7664  	var l int
  7665  	var fieldTypeId thrift.TType
  7666  	var fieldId int16
  7667  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  7668  	offset += l
  7669  	if err != nil {
  7670  		goto ReadStructBeginError
  7671  	}
  7672  
  7673  	for {
  7674  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  7675  		offset += l
  7676  		if err != nil {
  7677  			goto ReadFieldBeginError
  7678  		}
  7679  		if fieldTypeId == thrift.STOP {
  7680  			break
  7681  		}
  7682  		switch fieldId {
  7683  		case 1:
  7684  			if fieldTypeId == thrift.STRUCT {
  7685  				l, err = p.FastReadField1(buf[offset:])
  7686  				offset += l
  7687  				if err != nil {
  7688  					goto ReadFieldError
  7689  				}
  7690  			} else {
  7691  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7692  				offset += l
  7693  				if err != nil {
  7694  					goto SkipFieldError
  7695  				}
  7696  			}
  7697  		default:
  7698  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7699  			offset += l
  7700  			if err != nil {
  7701  				goto SkipFieldError
  7702  			}
  7703  		}
  7704  
  7705  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  7706  		offset += l
  7707  		if err != nil {
  7708  			goto ReadFieldEndError
  7709  		}
  7710  	}
  7711  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  7712  	offset += l
  7713  	if err != nil {
  7714  		goto ReadStructEndError
  7715  	}
  7716  
  7717  	return offset, nil
  7718  ReadStructBeginError:
  7719  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  7720  ReadFieldBeginError:
  7721  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  7722  ReadFieldError:
  7723  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceExampleMethodArgs[fieldId]), err)
  7724  SkipFieldError:
  7725  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  7726  ReadFieldEndError:
  7727  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  7728  ReadStructEndError:
  7729  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7730  }
  7731  
  7732  func (p *ExampleServiceExampleMethodArgs) FastReadField1(buf []byte) (int, error) {
  7733  	offset := 0
  7734  	p.Req = NewExampleReq()
  7735  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
  7736  		return offset, err
  7737  	} else {
  7738  		offset += l
  7739  	}
  7740  	return offset, nil
  7741  }
  7742  
  7743  // for compatibility
  7744  func (p *ExampleServiceExampleMethodArgs) FastWrite(buf []byte) int {
  7745  	return 0
  7746  }
  7747  
  7748  func (p *ExampleServiceExampleMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7749  	offset := 0
  7750  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleMethod_args")
  7751  	if p != nil {
  7752  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  7753  	}
  7754  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  7755  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  7756  	return offset
  7757  }
  7758  
  7759  func (p *ExampleServiceExampleMethodArgs) BLength() int {
  7760  	l := 0
  7761  	l += bthrift.Binary.StructBeginLength("ExampleMethod_args")
  7762  	if p != nil {
  7763  		l += p.field1Length()
  7764  	}
  7765  	l += bthrift.Binary.FieldStopLength()
  7766  	l += bthrift.Binary.StructEndLength()
  7767  	return l
  7768  }
  7769  
  7770  func (p *ExampleServiceExampleMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7771  	offset := 0
  7772  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
  7773  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
  7774  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7775  	return offset
  7776  }
  7777  
  7778  func (p *ExampleServiceExampleMethodArgs) field1Length() int {
  7779  	l := 0
  7780  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
  7781  	l += p.Req.BLength()
  7782  	l += bthrift.Binary.FieldEndLength()
  7783  	return l
  7784  }
  7785  
  7786  func (p *ExampleServiceExampleMethodResult) FastRead(buf []byte) (int, error) {
  7787  	var err error
  7788  	var offset int
  7789  	var l int
  7790  	var fieldTypeId thrift.TType
  7791  	var fieldId int16
  7792  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  7793  	offset += l
  7794  	if err != nil {
  7795  		goto ReadStructBeginError
  7796  	}
  7797  
  7798  	for {
  7799  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  7800  		offset += l
  7801  		if err != nil {
  7802  			goto ReadFieldBeginError
  7803  		}
  7804  		if fieldTypeId == thrift.STOP {
  7805  			break
  7806  		}
  7807  		switch fieldId {
  7808  		case 0:
  7809  			if fieldTypeId == thrift.STRUCT {
  7810  				l, err = p.FastReadField0(buf[offset:])
  7811  				offset += l
  7812  				if err != nil {
  7813  					goto ReadFieldError
  7814  				}
  7815  			} else {
  7816  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7817  				offset += l
  7818  				if err != nil {
  7819  					goto SkipFieldError
  7820  				}
  7821  			}
  7822  		case 1:
  7823  			if fieldTypeId == thrift.STRUCT {
  7824  				l, err = p.FastReadField1(buf[offset:])
  7825  				offset += l
  7826  				if err != nil {
  7827  					goto ReadFieldError
  7828  				}
  7829  			} else {
  7830  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7831  				offset += l
  7832  				if err != nil {
  7833  					goto SkipFieldError
  7834  				}
  7835  			}
  7836  		default:
  7837  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7838  			offset += l
  7839  			if err != nil {
  7840  				goto SkipFieldError
  7841  			}
  7842  		}
  7843  
  7844  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  7845  		offset += l
  7846  		if err != nil {
  7847  			goto ReadFieldEndError
  7848  		}
  7849  	}
  7850  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  7851  	offset += l
  7852  	if err != nil {
  7853  		goto ReadStructEndError
  7854  	}
  7855  
  7856  	return offset, nil
  7857  ReadStructBeginError:
  7858  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  7859  ReadFieldBeginError:
  7860  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  7861  ReadFieldError:
  7862  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceExampleMethodResult[fieldId]), err)
  7863  SkipFieldError:
  7864  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  7865  ReadFieldEndError:
  7866  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  7867  ReadStructEndError:
  7868  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  7869  }
  7870  
  7871  func (p *ExampleServiceExampleMethodResult) FastReadField0(buf []byte) (int, error) {
  7872  	offset := 0
  7873  	p.Success = NewExampleResp()
  7874  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
  7875  		return offset, err
  7876  	} else {
  7877  		offset += l
  7878  	}
  7879  	return offset, nil
  7880  }
  7881  
  7882  func (p *ExampleServiceExampleMethodResult) FastReadField1(buf []byte) (int, error) {
  7883  	offset := 0
  7884  	p.Err = NewException()
  7885  	if l, err := p.Err.FastRead(buf[offset:]); err != nil {
  7886  		return offset, err
  7887  	} else {
  7888  		offset += l
  7889  	}
  7890  	return offset, nil
  7891  }
  7892  
  7893  // for compatibility
  7894  func (p *ExampleServiceExampleMethodResult) FastWrite(buf []byte) int {
  7895  	return 0
  7896  }
  7897  
  7898  func (p *ExampleServiceExampleMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7899  	offset := 0
  7900  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ExampleMethod_result")
  7901  	if p != nil {
  7902  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
  7903  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  7904  	}
  7905  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  7906  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  7907  	return offset
  7908  }
  7909  
  7910  func (p *ExampleServiceExampleMethodResult) BLength() int {
  7911  	l := 0
  7912  	l += bthrift.Binary.StructBeginLength("ExampleMethod_result")
  7913  	if p != nil {
  7914  		l += p.field0Length()
  7915  		l += p.field1Length()
  7916  	}
  7917  	l += bthrift.Binary.FieldStopLength()
  7918  	l += bthrift.Binary.StructEndLength()
  7919  	return l
  7920  }
  7921  
  7922  func (p *ExampleServiceExampleMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7923  	offset := 0
  7924  	if p.IsSetSuccess() {
  7925  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
  7926  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
  7927  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7928  	}
  7929  	return offset
  7930  }
  7931  
  7932  func (p *ExampleServiceExampleMethodResult) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  7933  	offset := 0
  7934  	if p.IsSetErr() {
  7935  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "err", thrift.STRUCT, 1)
  7936  		offset += p.Err.FastWriteNocopy(buf[offset:], binaryWriter)
  7937  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  7938  	}
  7939  	return offset
  7940  }
  7941  
  7942  func (p *ExampleServiceExampleMethodResult) field0Length() int {
  7943  	l := 0
  7944  	if p.IsSetSuccess() {
  7945  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
  7946  		l += p.Success.BLength()
  7947  		l += bthrift.Binary.FieldEndLength()
  7948  	}
  7949  	return l
  7950  }
  7951  
  7952  func (p *ExampleServiceExampleMethodResult) field1Length() int {
  7953  	l := 0
  7954  	if p.IsSetErr() {
  7955  		l += bthrift.Binary.FieldBeginLength("err", thrift.STRUCT, 1)
  7956  		l += p.Err.BLength()
  7957  		l += bthrift.Binary.FieldEndLength()
  7958  	}
  7959  	return l
  7960  }
  7961  
  7962  func (p *ExampleServiceErrorMethodArgs) FastRead(buf []byte) (int, error) {
  7963  	var err error
  7964  	var offset int
  7965  	var l int
  7966  	var fieldTypeId thrift.TType
  7967  	var fieldId int16
  7968  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  7969  	offset += l
  7970  	if err != nil {
  7971  		goto ReadStructBeginError
  7972  	}
  7973  
  7974  	for {
  7975  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  7976  		offset += l
  7977  		if err != nil {
  7978  			goto ReadFieldBeginError
  7979  		}
  7980  		if fieldTypeId == thrift.STOP {
  7981  			break
  7982  		}
  7983  		switch fieldId {
  7984  		case 1:
  7985  			if fieldTypeId == thrift.STRUCT {
  7986  				l, err = p.FastReadField1(buf[offset:])
  7987  				offset += l
  7988  				if err != nil {
  7989  					goto ReadFieldError
  7990  				}
  7991  			} else {
  7992  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  7993  				offset += l
  7994  				if err != nil {
  7995  					goto SkipFieldError
  7996  				}
  7997  			}
  7998  		default:
  7999  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8000  			offset += l
  8001  			if err != nil {
  8002  				goto SkipFieldError
  8003  			}
  8004  		}
  8005  
  8006  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  8007  		offset += l
  8008  		if err != nil {
  8009  			goto ReadFieldEndError
  8010  		}
  8011  	}
  8012  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  8013  	offset += l
  8014  	if err != nil {
  8015  		goto ReadStructEndError
  8016  	}
  8017  
  8018  	return offset, nil
  8019  ReadStructBeginError:
  8020  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  8021  ReadFieldBeginError:
  8022  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  8023  ReadFieldError:
  8024  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceErrorMethodArgs[fieldId]), err)
  8025  SkipFieldError:
  8026  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  8027  ReadFieldEndError:
  8028  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  8029  ReadStructEndError:
  8030  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  8031  }
  8032  
  8033  func (p *ExampleServiceErrorMethodArgs) FastReadField1(buf []byte) (int, error) {
  8034  	offset := 0
  8035  	p.Req = NewExampleError()
  8036  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
  8037  		return offset, err
  8038  	} else {
  8039  		offset += l
  8040  	}
  8041  	return offset, nil
  8042  }
  8043  
  8044  // for compatibility
  8045  func (p *ExampleServiceErrorMethodArgs) FastWrite(buf []byte) int {
  8046  	return 0
  8047  }
  8048  
  8049  func (p *ExampleServiceErrorMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8050  	offset := 0
  8051  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ErrorMethod_args")
  8052  	if p != nil {
  8053  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  8054  	}
  8055  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  8056  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  8057  	return offset
  8058  }
  8059  
  8060  func (p *ExampleServiceErrorMethodArgs) BLength() int {
  8061  	l := 0
  8062  	l += bthrift.Binary.StructBeginLength("ErrorMethod_args")
  8063  	if p != nil {
  8064  		l += p.field1Length()
  8065  	}
  8066  	l += bthrift.Binary.FieldStopLength()
  8067  	l += bthrift.Binary.StructEndLength()
  8068  	return l
  8069  }
  8070  
  8071  func (p *ExampleServiceErrorMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8072  	offset := 0
  8073  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
  8074  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
  8075  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  8076  	return offset
  8077  }
  8078  
  8079  func (p *ExampleServiceErrorMethodArgs) field1Length() int {
  8080  	l := 0
  8081  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
  8082  	l += p.Req.BLength()
  8083  	l += bthrift.Binary.FieldEndLength()
  8084  	return l
  8085  }
  8086  
  8087  func (p *ExampleServiceErrorMethodResult) FastRead(buf []byte) (int, error) {
  8088  	var err error
  8089  	var offset int
  8090  	var l int
  8091  	var fieldTypeId thrift.TType
  8092  	var fieldId int16
  8093  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  8094  	offset += l
  8095  	if err != nil {
  8096  		goto ReadStructBeginError
  8097  	}
  8098  
  8099  	for {
  8100  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  8101  		offset += l
  8102  		if err != nil {
  8103  			goto ReadFieldBeginError
  8104  		}
  8105  		if fieldTypeId == thrift.STOP {
  8106  			break
  8107  		}
  8108  		switch fieldId {
  8109  		case 0:
  8110  			if fieldTypeId == thrift.STRUCT {
  8111  				l, err = p.FastReadField0(buf[offset:])
  8112  				offset += l
  8113  				if err != nil {
  8114  					goto ReadFieldError
  8115  				}
  8116  			} else {
  8117  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8118  				offset += l
  8119  				if err != nil {
  8120  					goto SkipFieldError
  8121  				}
  8122  			}
  8123  		default:
  8124  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8125  			offset += l
  8126  			if err != nil {
  8127  				goto SkipFieldError
  8128  			}
  8129  		}
  8130  
  8131  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  8132  		offset += l
  8133  		if err != nil {
  8134  			goto ReadFieldEndError
  8135  		}
  8136  	}
  8137  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  8138  	offset += l
  8139  	if err != nil {
  8140  		goto ReadStructEndError
  8141  	}
  8142  
  8143  	return offset, nil
  8144  ReadStructBeginError:
  8145  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  8146  ReadFieldBeginError:
  8147  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  8148  ReadFieldError:
  8149  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceErrorMethodResult[fieldId]), err)
  8150  SkipFieldError:
  8151  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  8152  ReadFieldEndError:
  8153  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  8154  ReadStructEndError:
  8155  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  8156  }
  8157  
  8158  func (p *ExampleServiceErrorMethodResult) FastReadField0(buf []byte) (int, error) {
  8159  	offset := 0
  8160  	p.Success = NewExampleErrorResp()
  8161  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
  8162  		return offset, err
  8163  	} else {
  8164  		offset += l
  8165  	}
  8166  	return offset, nil
  8167  }
  8168  
  8169  // for compatibility
  8170  func (p *ExampleServiceErrorMethodResult) FastWrite(buf []byte) int {
  8171  	return 0
  8172  }
  8173  
  8174  func (p *ExampleServiceErrorMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8175  	offset := 0
  8176  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ErrorMethod_result")
  8177  	if p != nil {
  8178  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
  8179  	}
  8180  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  8181  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  8182  	return offset
  8183  }
  8184  
  8185  func (p *ExampleServiceErrorMethodResult) BLength() int {
  8186  	l := 0
  8187  	l += bthrift.Binary.StructBeginLength("ErrorMethod_result")
  8188  	if p != nil {
  8189  		l += p.field0Length()
  8190  	}
  8191  	l += bthrift.Binary.FieldStopLength()
  8192  	l += bthrift.Binary.StructEndLength()
  8193  	return l
  8194  }
  8195  
  8196  func (p *ExampleServiceErrorMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8197  	offset := 0
  8198  	if p.IsSetSuccess() {
  8199  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
  8200  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
  8201  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  8202  	}
  8203  	return offset
  8204  }
  8205  
  8206  func (p *ExampleServiceErrorMethodResult) field0Length() int {
  8207  	l := 0
  8208  	if p.IsSetSuccess() {
  8209  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
  8210  		l += p.Success.BLength()
  8211  		l += bthrift.Binary.FieldEndLength()
  8212  	}
  8213  	return l
  8214  }
  8215  
  8216  func (p *ExampleServiceInt2FloatMethodArgs) FastRead(buf []byte) (int, error) {
  8217  	var err error
  8218  	var offset int
  8219  	var l int
  8220  	var fieldTypeId thrift.TType
  8221  	var fieldId int16
  8222  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  8223  	offset += l
  8224  	if err != nil {
  8225  		goto ReadStructBeginError
  8226  	}
  8227  
  8228  	for {
  8229  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  8230  		offset += l
  8231  		if err != nil {
  8232  			goto ReadFieldBeginError
  8233  		}
  8234  		if fieldTypeId == thrift.STOP {
  8235  			break
  8236  		}
  8237  		switch fieldId {
  8238  		case 1:
  8239  			if fieldTypeId == thrift.STRUCT {
  8240  				l, err = p.FastReadField1(buf[offset:])
  8241  				offset += l
  8242  				if err != nil {
  8243  					goto ReadFieldError
  8244  				}
  8245  			} else {
  8246  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8247  				offset += l
  8248  				if err != nil {
  8249  					goto SkipFieldError
  8250  				}
  8251  			}
  8252  		default:
  8253  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8254  			offset += l
  8255  			if err != nil {
  8256  				goto SkipFieldError
  8257  			}
  8258  		}
  8259  
  8260  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  8261  		offset += l
  8262  		if err != nil {
  8263  			goto ReadFieldEndError
  8264  		}
  8265  	}
  8266  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  8267  	offset += l
  8268  	if err != nil {
  8269  		goto ReadStructEndError
  8270  	}
  8271  
  8272  	return offset, nil
  8273  ReadStructBeginError:
  8274  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  8275  ReadFieldBeginError:
  8276  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  8277  ReadFieldError:
  8278  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceInt2FloatMethodArgs[fieldId]), err)
  8279  SkipFieldError:
  8280  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  8281  ReadFieldEndError:
  8282  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  8283  ReadStructEndError:
  8284  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  8285  }
  8286  
  8287  func (p *ExampleServiceInt2FloatMethodArgs) FastReadField1(buf []byte) (int, error) {
  8288  	offset := 0
  8289  	p.Req = NewExampleInt2Float()
  8290  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
  8291  		return offset, err
  8292  	} else {
  8293  		offset += l
  8294  	}
  8295  	return offset, nil
  8296  }
  8297  
  8298  // for compatibility
  8299  func (p *ExampleServiceInt2FloatMethodArgs) FastWrite(buf []byte) int {
  8300  	return 0
  8301  }
  8302  
  8303  func (p *ExampleServiceInt2FloatMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8304  	offset := 0
  8305  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "Int2FloatMethod_args")
  8306  	if p != nil {
  8307  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  8308  	}
  8309  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  8310  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  8311  	return offset
  8312  }
  8313  
  8314  func (p *ExampleServiceInt2FloatMethodArgs) BLength() int {
  8315  	l := 0
  8316  	l += bthrift.Binary.StructBeginLength("Int2FloatMethod_args")
  8317  	if p != nil {
  8318  		l += p.field1Length()
  8319  	}
  8320  	l += bthrift.Binary.FieldStopLength()
  8321  	l += bthrift.Binary.StructEndLength()
  8322  	return l
  8323  }
  8324  
  8325  func (p *ExampleServiceInt2FloatMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8326  	offset := 0
  8327  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
  8328  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
  8329  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  8330  	return offset
  8331  }
  8332  
  8333  func (p *ExampleServiceInt2FloatMethodArgs) field1Length() int {
  8334  	l := 0
  8335  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
  8336  	l += p.Req.BLength()
  8337  	l += bthrift.Binary.FieldEndLength()
  8338  	return l
  8339  }
  8340  
  8341  func (p *ExampleServiceInt2FloatMethodResult) FastRead(buf []byte) (int, error) {
  8342  	var err error
  8343  	var offset int
  8344  	var l int
  8345  	var fieldTypeId thrift.TType
  8346  	var fieldId int16
  8347  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  8348  	offset += l
  8349  	if err != nil {
  8350  		goto ReadStructBeginError
  8351  	}
  8352  
  8353  	for {
  8354  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  8355  		offset += l
  8356  		if err != nil {
  8357  			goto ReadFieldBeginError
  8358  		}
  8359  		if fieldTypeId == thrift.STOP {
  8360  			break
  8361  		}
  8362  		switch fieldId {
  8363  		case 0:
  8364  			if fieldTypeId == thrift.STRUCT {
  8365  				l, err = p.FastReadField0(buf[offset:])
  8366  				offset += l
  8367  				if err != nil {
  8368  					goto ReadFieldError
  8369  				}
  8370  			} else {
  8371  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8372  				offset += l
  8373  				if err != nil {
  8374  					goto SkipFieldError
  8375  				}
  8376  			}
  8377  		default:
  8378  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8379  			offset += l
  8380  			if err != nil {
  8381  				goto SkipFieldError
  8382  			}
  8383  		}
  8384  
  8385  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  8386  		offset += l
  8387  		if err != nil {
  8388  			goto ReadFieldEndError
  8389  		}
  8390  	}
  8391  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  8392  	offset += l
  8393  	if err != nil {
  8394  		goto ReadStructEndError
  8395  	}
  8396  
  8397  	return offset, nil
  8398  ReadStructBeginError:
  8399  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  8400  ReadFieldBeginError:
  8401  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  8402  ReadFieldError:
  8403  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceInt2FloatMethodResult[fieldId]), err)
  8404  SkipFieldError:
  8405  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  8406  ReadFieldEndError:
  8407  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  8408  ReadStructEndError:
  8409  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  8410  }
  8411  
  8412  func (p *ExampleServiceInt2FloatMethodResult) FastReadField0(buf []byte) (int, error) {
  8413  	offset := 0
  8414  	p.Success = NewExampleInt2Float()
  8415  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
  8416  		return offset, err
  8417  	} else {
  8418  		offset += l
  8419  	}
  8420  	return offset, nil
  8421  }
  8422  
  8423  // for compatibility
  8424  func (p *ExampleServiceInt2FloatMethodResult) FastWrite(buf []byte) int {
  8425  	return 0
  8426  }
  8427  
  8428  func (p *ExampleServiceInt2FloatMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8429  	offset := 0
  8430  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "Int2FloatMethod_result")
  8431  	if p != nil {
  8432  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
  8433  	}
  8434  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  8435  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  8436  	return offset
  8437  }
  8438  
  8439  func (p *ExampleServiceInt2FloatMethodResult) BLength() int {
  8440  	l := 0
  8441  	l += bthrift.Binary.StructBeginLength("Int2FloatMethod_result")
  8442  	if p != nil {
  8443  		l += p.field0Length()
  8444  	}
  8445  	l += bthrift.Binary.FieldStopLength()
  8446  	l += bthrift.Binary.StructEndLength()
  8447  	return l
  8448  }
  8449  
  8450  func (p *ExampleServiceInt2FloatMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8451  	offset := 0
  8452  	if p.IsSetSuccess() {
  8453  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
  8454  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
  8455  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  8456  	}
  8457  	return offset
  8458  }
  8459  
  8460  func (p *ExampleServiceInt2FloatMethodResult) field0Length() int {
  8461  	l := 0
  8462  	if p.IsSetSuccess() {
  8463  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
  8464  		l += p.Success.BLength()
  8465  		l += bthrift.Binary.FieldEndLength()
  8466  	}
  8467  	return l
  8468  }
  8469  
  8470  func (p *ExampleServiceJSONStringMethodArgs) FastRead(buf []byte) (int, error) {
  8471  	var err error
  8472  	var offset int
  8473  	var l int
  8474  	var fieldTypeId thrift.TType
  8475  	var fieldId int16
  8476  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  8477  	offset += l
  8478  	if err != nil {
  8479  		goto ReadStructBeginError
  8480  	}
  8481  
  8482  	for {
  8483  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  8484  		offset += l
  8485  		if err != nil {
  8486  			goto ReadFieldBeginError
  8487  		}
  8488  		if fieldTypeId == thrift.STOP {
  8489  			break
  8490  		}
  8491  		switch fieldId {
  8492  		case 1:
  8493  			if fieldTypeId == thrift.STRUCT {
  8494  				l, err = p.FastReadField1(buf[offset:])
  8495  				offset += l
  8496  				if err != nil {
  8497  					goto ReadFieldError
  8498  				}
  8499  			} else {
  8500  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8501  				offset += l
  8502  				if err != nil {
  8503  					goto SkipFieldError
  8504  				}
  8505  			}
  8506  		default:
  8507  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8508  			offset += l
  8509  			if err != nil {
  8510  				goto SkipFieldError
  8511  			}
  8512  		}
  8513  
  8514  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  8515  		offset += l
  8516  		if err != nil {
  8517  			goto ReadFieldEndError
  8518  		}
  8519  	}
  8520  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  8521  	offset += l
  8522  	if err != nil {
  8523  		goto ReadStructEndError
  8524  	}
  8525  
  8526  	return offset, nil
  8527  ReadStructBeginError:
  8528  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  8529  ReadFieldBeginError:
  8530  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  8531  ReadFieldError:
  8532  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceJSONStringMethodArgs[fieldId]), err)
  8533  SkipFieldError:
  8534  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  8535  ReadFieldEndError:
  8536  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  8537  ReadStructEndError:
  8538  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  8539  }
  8540  
  8541  func (p *ExampleServiceJSONStringMethodArgs) FastReadField1(buf []byte) (int, error) {
  8542  	offset := 0
  8543  	p.Req = NewExampleJSONString()
  8544  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
  8545  		return offset, err
  8546  	} else {
  8547  		offset += l
  8548  	}
  8549  	return offset, nil
  8550  }
  8551  
  8552  // for compatibility
  8553  func (p *ExampleServiceJSONStringMethodArgs) FastWrite(buf []byte) int {
  8554  	return 0
  8555  }
  8556  
  8557  func (p *ExampleServiceJSONStringMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8558  	offset := 0
  8559  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "JSONStringMethod_args")
  8560  	if p != nil {
  8561  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  8562  	}
  8563  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  8564  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  8565  	return offset
  8566  }
  8567  
  8568  func (p *ExampleServiceJSONStringMethodArgs) BLength() int {
  8569  	l := 0
  8570  	l += bthrift.Binary.StructBeginLength("JSONStringMethod_args")
  8571  	if p != nil {
  8572  		l += p.field1Length()
  8573  	}
  8574  	l += bthrift.Binary.FieldStopLength()
  8575  	l += bthrift.Binary.StructEndLength()
  8576  	return l
  8577  }
  8578  
  8579  func (p *ExampleServiceJSONStringMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8580  	offset := 0
  8581  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
  8582  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
  8583  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  8584  	return offset
  8585  }
  8586  
  8587  func (p *ExampleServiceJSONStringMethodArgs) field1Length() int {
  8588  	l := 0
  8589  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
  8590  	l += p.Req.BLength()
  8591  	l += bthrift.Binary.FieldEndLength()
  8592  	return l
  8593  }
  8594  
  8595  func (p *ExampleServiceJSONStringMethodResult) FastRead(buf []byte) (int, error) {
  8596  	var err error
  8597  	var offset int
  8598  	var l int
  8599  	var fieldTypeId thrift.TType
  8600  	var fieldId int16
  8601  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  8602  	offset += l
  8603  	if err != nil {
  8604  		goto ReadStructBeginError
  8605  	}
  8606  
  8607  	for {
  8608  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  8609  		offset += l
  8610  		if err != nil {
  8611  			goto ReadFieldBeginError
  8612  		}
  8613  		if fieldTypeId == thrift.STOP {
  8614  			break
  8615  		}
  8616  		switch fieldId {
  8617  		case 0:
  8618  			if fieldTypeId == thrift.STRUCT {
  8619  				l, err = p.FastReadField0(buf[offset:])
  8620  				offset += l
  8621  				if err != nil {
  8622  					goto ReadFieldError
  8623  				}
  8624  			} else {
  8625  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8626  				offset += l
  8627  				if err != nil {
  8628  					goto SkipFieldError
  8629  				}
  8630  			}
  8631  		default:
  8632  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8633  			offset += l
  8634  			if err != nil {
  8635  				goto SkipFieldError
  8636  			}
  8637  		}
  8638  
  8639  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  8640  		offset += l
  8641  		if err != nil {
  8642  			goto ReadFieldEndError
  8643  		}
  8644  	}
  8645  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  8646  	offset += l
  8647  	if err != nil {
  8648  		goto ReadStructEndError
  8649  	}
  8650  
  8651  	return offset, nil
  8652  ReadStructBeginError:
  8653  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  8654  ReadFieldBeginError:
  8655  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  8656  ReadFieldError:
  8657  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceJSONStringMethodResult[fieldId]), err)
  8658  SkipFieldError:
  8659  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  8660  ReadFieldEndError:
  8661  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  8662  ReadStructEndError:
  8663  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  8664  }
  8665  
  8666  func (p *ExampleServiceJSONStringMethodResult) FastReadField0(buf []byte) (int, error) {
  8667  	offset := 0
  8668  	p.Success = NewExampleJSONString()
  8669  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
  8670  		return offset, err
  8671  	} else {
  8672  		offset += l
  8673  	}
  8674  	return offset, nil
  8675  }
  8676  
  8677  // for compatibility
  8678  func (p *ExampleServiceJSONStringMethodResult) FastWrite(buf []byte) int {
  8679  	return 0
  8680  }
  8681  
  8682  func (p *ExampleServiceJSONStringMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8683  	offset := 0
  8684  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "JSONStringMethod_result")
  8685  	if p != nil {
  8686  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
  8687  	}
  8688  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  8689  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  8690  	return offset
  8691  }
  8692  
  8693  func (p *ExampleServiceJSONStringMethodResult) BLength() int {
  8694  	l := 0
  8695  	l += bthrift.Binary.StructBeginLength("JSONStringMethod_result")
  8696  	if p != nil {
  8697  		l += p.field0Length()
  8698  	}
  8699  	l += bthrift.Binary.FieldStopLength()
  8700  	l += bthrift.Binary.StructEndLength()
  8701  	return l
  8702  }
  8703  
  8704  func (p *ExampleServiceJSONStringMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8705  	offset := 0
  8706  	if p.IsSetSuccess() {
  8707  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
  8708  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
  8709  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  8710  	}
  8711  	return offset
  8712  }
  8713  
  8714  func (p *ExampleServiceJSONStringMethodResult) field0Length() int {
  8715  	l := 0
  8716  	if p.IsSetSuccess() {
  8717  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
  8718  		l += p.Success.BLength()
  8719  		l += bthrift.Binary.FieldEndLength()
  8720  	}
  8721  	return l
  8722  }
  8723  
  8724  func (p *ExampleServicePartialMethodArgs) FastRead(buf []byte) (int, error) {
  8725  	var err error
  8726  	var offset int
  8727  	var l int
  8728  	var fieldTypeId thrift.TType
  8729  	var fieldId int16
  8730  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  8731  	offset += l
  8732  	if err != nil {
  8733  		goto ReadStructBeginError
  8734  	}
  8735  
  8736  	for {
  8737  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  8738  		offset += l
  8739  		if err != nil {
  8740  			goto ReadFieldBeginError
  8741  		}
  8742  		if fieldTypeId == thrift.STOP {
  8743  			break
  8744  		}
  8745  		switch fieldId {
  8746  		case 1:
  8747  			if fieldTypeId == thrift.STRUCT {
  8748  				l, err = p.FastReadField1(buf[offset:])
  8749  				offset += l
  8750  				if err != nil {
  8751  					goto ReadFieldError
  8752  				}
  8753  			} else {
  8754  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8755  				offset += l
  8756  				if err != nil {
  8757  					goto SkipFieldError
  8758  				}
  8759  			}
  8760  		default:
  8761  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8762  			offset += l
  8763  			if err != nil {
  8764  				goto SkipFieldError
  8765  			}
  8766  		}
  8767  
  8768  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  8769  		offset += l
  8770  		if err != nil {
  8771  			goto ReadFieldEndError
  8772  		}
  8773  	}
  8774  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  8775  	offset += l
  8776  	if err != nil {
  8777  		goto ReadStructEndError
  8778  	}
  8779  
  8780  	return offset, nil
  8781  ReadStructBeginError:
  8782  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  8783  ReadFieldBeginError:
  8784  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  8785  ReadFieldError:
  8786  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServicePartialMethodArgs[fieldId]), err)
  8787  SkipFieldError:
  8788  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  8789  ReadFieldEndError:
  8790  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  8791  ReadStructEndError:
  8792  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  8793  }
  8794  
  8795  func (p *ExampleServicePartialMethodArgs) FastReadField1(buf []byte) (int, error) {
  8796  	offset := 0
  8797  	p.Req = NewExamplePartial2()
  8798  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
  8799  		return offset, err
  8800  	} else {
  8801  		offset += l
  8802  	}
  8803  	return offset, nil
  8804  }
  8805  
  8806  // for compatibility
  8807  func (p *ExampleServicePartialMethodArgs) FastWrite(buf []byte) int {
  8808  	return 0
  8809  }
  8810  
  8811  func (p *ExampleServicePartialMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8812  	offset := 0
  8813  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "PartialMethod_args")
  8814  	if p != nil {
  8815  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  8816  	}
  8817  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  8818  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  8819  	return offset
  8820  }
  8821  
  8822  func (p *ExampleServicePartialMethodArgs) BLength() int {
  8823  	l := 0
  8824  	l += bthrift.Binary.StructBeginLength("PartialMethod_args")
  8825  	if p != nil {
  8826  		l += p.field1Length()
  8827  	}
  8828  	l += bthrift.Binary.FieldStopLength()
  8829  	l += bthrift.Binary.StructEndLength()
  8830  	return l
  8831  }
  8832  
  8833  func (p *ExampleServicePartialMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8834  	offset := 0
  8835  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
  8836  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
  8837  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  8838  	return offset
  8839  }
  8840  
  8841  func (p *ExampleServicePartialMethodArgs) field1Length() int {
  8842  	l := 0
  8843  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
  8844  	l += p.Req.BLength()
  8845  	l += bthrift.Binary.FieldEndLength()
  8846  	return l
  8847  }
  8848  
  8849  func (p *ExampleServicePartialMethodResult) FastRead(buf []byte) (int, error) {
  8850  	var err error
  8851  	var offset int
  8852  	var l int
  8853  	var fieldTypeId thrift.TType
  8854  	var fieldId int16
  8855  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  8856  	offset += l
  8857  	if err != nil {
  8858  		goto ReadStructBeginError
  8859  	}
  8860  
  8861  	for {
  8862  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  8863  		offset += l
  8864  		if err != nil {
  8865  			goto ReadFieldBeginError
  8866  		}
  8867  		if fieldTypeId == thrift.STOP {
  8868  			break
  8869  		}
  8870  		switch fieldId {
  8871  		case 0:
  8872  			if fieldTypeId == thrift.STRUCT {
  8873  				l, err = p.FastReadField0(buf[offset:])
  8874  				offset += l
  8875  				if err != nil {
  8876  					goto ReadFieldError
  8877  				}
  8878  			} else {
  8879  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8880  				offset += l
  8881  				if err != nil {
  8882  					goto SkipFieldError
  8883  				}
  8884  			}
  8885  		default:
  8886  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  8887  			offset += l
  8888  			if err != nil {
  8889  				goto SkipFieldError
  8890  			}
  8891  		}
  8892  
  8893  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  8894  		offset += l
  8895  		if err != nil {
  8896  			goto ReadFieldEndError
  8897  		}
  8898  	}
  8899  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  8900  	offset += l
  8901  	if err != nil {
  8902  		goto ReadStructEndError
  8903  	}
  8904  
  8905  	return offset, nil
  8906  ReadStructBeginError:
  8907  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  8908  ReadFieldBeginError:
  8909  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  8910  ReadFieldError:
  8911  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServicePartialMethodResult[fieldId]), err)
  8912  SkipFieldError:
  8913  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  8914  ReadFieldEndError:
  8915  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  8916  ReadStructEndError:
  8917  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  8918  }
  8919  
  8920  func (p *ExampleServicePartialMethodResult) FastReadField0(buf []byte) (int, error) {
  8921  	offset := 0
  8922  	p.Success = NewExamplePartial()
  8923  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
  8924  		return offset, err
  8925  	} else {
  8926  		offset += l
  8927  	}
  8928  	return offset, nil
  8929  }
  8930  
  8931  // for compatibility
  8932  func (p *ExampleServicePartialMethodResult) FastWrite(buf []byte) int {
  8933  	return 0
  8934  }
  8935  
  8936  func (p *ExampleServicePartialMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8937  	offset := 0
  8938  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "PartialMethod_result")
  8939  	if p != nil {
  8940  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
  8941  	}
  8942  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  8943  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  8944  	return offset
  8945  }
  8946  
  8947  func (p *ExampleServicePartialMethodResult) BLength() int {
  8948  	l := 0
  8949  	l += bthrift.Binary.StructBeginLength("PartialMethod_result")
  8950  	if p != nil {
  8951  		l += p.field0Length()
  8952  	}
  8953  	l += bthrift.Binary.FieldStopLength()
  8954  	l += bthrift.Binary.StructEndLength()
  8955  	return l
  8956  }
  8957  
  8958  func (p *ExampleServicePartialMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  8959  	offset := 0
  8960  	if p.IsSetSuccess() {
  8961  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
  8962  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
  8963  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  8964  	}
  8965  	return offset
  8966  }
  8967  
  8968  func (p *ExampleServicePartialMethodResult) field0Length() int {
  8969  	l := 0
  8970  	if p.IsSetSuccess() {
  8971  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
  8972  		l += p.Success.BLength()
  8973  		l += bthrift.Binary.FieldEndLength()
  8974  	}
  8975  	return l
  8976  }
  8977  
  8978  func (p *ExampleServiceFallbackMethodArgs) FastRead(buf []byte) (int, error) {
  8979  	var err error
  8980  	var offset int
  8981  	var l int
  8982  	var fieldTypeId thrift.TType
  8983  	var fieldId int16
  8984  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  8985  	offset += l
  8986  	if err != nil {
  8987  		goto ReadStructBeginError
  8988  	}
  8989  
  8990  	for {
  8991  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  8992  		offset += l
  8993  		if err != nil {
  8994  			goto ReadFieldBeginError
  8995  		}
  8996  		if fieldTypeId == thrift.STOP {
  8997  			break
  8998  		}
  8999  		switch fieldId {
  9000  		case 1:
  9001  			if fieldTypeId == thrift.STRUCT {
  9002  				l, err = p.FastReadField1(buf[offset:])
  9003  				offset += l
  9004  				if err != nil {
  9005  					goto ReadFieldError
  9006  				}
  9007  			} else {
  9008  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9009  				offset += l
  9010  				if err != nil {
  9011  					goto SkipFieldError
  9012  				}
  9013  			}
  9014  		default:
  9015  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9016  			offset += l
  9017  			if err != nil {
  9018  				goto SkipFieldError
  9019  			}
  9020  		}
  9021  
  9022  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  9023  		offset += l
  9024  		if err != nil {
  9025  			goto ReadFieldEndError
  9026  		}
  9027  	}
  9028  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  9029  	offset += l
  9030  	if err != nil {
  9031  		goto ReadStructEndError
  9032  	}
  9033  
  9034  	return offset, nil
  9035  ReadStructBeginError:
  9036  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  9037  ReadFieldBeginError:
  9038  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  9039  ReadFieldError:
  9040  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceFallbackMethodArgs[fieldId]), err)
  9041  SkipFieldError:
  9042  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  9043  ReadFieldEndError:
  9044  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  9045  ReadStructEndError:
  9046  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  9047  }
  9048  
  9049  func (p *ExampleServiceFallbackMethodArgs) FastReadField1(buf []byte) (int, error) {
  9050  	offset := 0
  9051  	p.Req = NewExampleFallback()
  9052  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
  9053  		return offset, err
  9054  	} else {
  9055  		offset += l
  9056  	}
  9057  	return offset, nil
  9058  }
  9059  
  9060  // for compatibility
  9061  func (p *ExampleServiceFallbackMethodArgs) FastWrite(buf []byte) int {
  9062  	return 0
  9063  }
  9064  
  9065  func (p *ExampleServiceFallbackMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9066  	offset := 0
  9067  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "FallbackMethod_args")
  9068  	if p != nil {
  9069  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  9070  	}
  9071  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  9072  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  9073  	return offset
  9074  }
  9075  
  9076  func (p *ExampleServiceFallbackMethodArgs) BLength() int {
  9077  	l := 0
  9078  	l += bthrift.Binary.StructBeginLength("FallbackMethod_args")
  9079  	if p != nil {
  9080  		l += p.field1Length()
  9081  	}
  9082  	l += bthrift.Binary.FieldStopLength()
  9083  	l += bthrift.Binary.StructEndLength()
  9084  	return l
  9085  }
  9086  
  9087  func (p *ExampleServiceFallbackMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9088  	offset := 0
  9089  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
  9090  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
  9091  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  9092  	return offset
  9093  }
  9094  
  9095  func (p *ExampleServiceFallbackMethodArgs) field1Length() int {
  9096  	l := 0
  9097  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
  9098  	l += p.Req.BLength()
  9099  	l += bthrift.Binary.FieldEndLength()
  9100  	return l
  9101  }
  9102  
  9103  func (p *ExampleServiceFallbackMethodResult) FastRead(buf []byte) (int, error) {
  9104  	var err error
  9105  	var offset int
  9106  	var l int
  9107  	var fieldTypeId thrift.TType
  9108  	var fieldId int16
  9109  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  9110  	offset += l
  9111  	if err != nil {
  9112  		goto ReadStructBeginError
  9113  	}
  9114  
  9115  	for {
  9116  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  9117  		offset += l
  9118  		if err != nil {
  9119  			goto ReadFieldBeginError
  9120  		}
  9121  		if fieldTypeId == thrift.STOP {
  9122  			break
  9123  		}
  9124  		switch fieldId {
  9125  		case 0:
  9126  			if fieldTypeId == thrift.STRUCT {
  9127  				l, err = p.FastReadField0(buf[offset:])
  9128  				offset += l
  9129  				if err != nil {
  9130  					goto ReadFieldError
  9131  				}
  9132  			} else {
  9133  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9134  				offset += l
  9135  				if err != nil {
  9136  					goto SkipFieldError
  9137  				}
  9138  			}
  9139  		default:
  9140  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9141  			offset += l
  9142  			if err != nil {
  9143  				goto SkipFieldError
  9144  			}
  9145  		}
  9146  
  9147  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  9148  		offset += l
  9149  		if err != nil {
  9150  			goto ReadFieldEndError
  9151  		}
  9152  	}
  9153  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  9154  	offset += l
  9155  	if err != nil {
  9156  		goto ReadStructEndError
  9157  	}
  9158  
  9159  	return offset, nil
  9160  ReadStructBeginError:
  9161  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  9162  ReadFieldBeginError:
  9163  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  9164  ReadFieldError:
  9165  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceFallbackMethodResult[fieldId]), err)
  9166  SkipFieldError:
  9167  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  9168  ReadFieldEndError:
  9169  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  9170  ReadStructEndError:
  9171  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  9172  }
  9173  
  9174  func (p *ExampleServiceFallbackMethodResult) FastReadField0(buf []byte) (int, error) {
  9175  	offset := 0
  9176  	p.Success = NewExampleFallback()
  9177  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
  9178  		return offset, err
  9179  	} else {
  9180  		offset += l
  9181  	}
  9182  	return offset, nil
  9183  }
  9184  
  9185  // for compatibility
  9186  func (p *ExampleServiceFallbackMethodResult) FastWrite(buf []byte) int {
  9187  	return 0
  9188  }
  9189  
  9190  func (p *ExampleServiceFallbackMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9191  	offset := 0
  9192  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "FallbackMethod_result")
  9193  	if p != nil {
  9194  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
  9195  	}
  9196  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  9197  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  9198  	return offset
  9199  }
  9200  
  9201  func (p *ExampleServiceFallbackMethodResult) BLength() int {
  9202  	l := 0
  9203  	l += bthrift.Binary.StructBeginLength("FallbackMethod_result")
  9204  	if p != nil {
  9205  		l += p.field0Length()
  9206  	}
  9207  	l += bthrift.Binary.FieldStopLength()
  9208  	l += bthrift.Binary.StructEndLength()
  9209  	return l
  9210  }
  9211  
  9212  func (p *ExampleServiceFallbackMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9213  	offset := 0
  9214  	if p.IsSetSuccess() {
  9215  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
  9216  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
  9217  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  9218  	}
  9219  	return offset
  9220  }
  9221  
  9222  func (p *ExampleServiceFallbackMethodResult) field0Length() int {
  9223  	l := 0
  9224  	if p.IsSetSuccess() {
  9225  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
  9226  		l += p.Success.BLength()
  9227  		l += bthrift.Binary.FieldEndLength()
  9228  	}
  9229  	return l
  9230  }
  9231  
  9232  func (p *ExampleServiceApiBodyMethodArgs) FastRead(buf []byte) (int, error) {
  9233  	var err error
  9234  	var offset int
  9235  	var l int
  9236  	var fieldTypeId thrift.TType
  9237  	var fieldId int16
  9238  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  9239  	offset += l
  9240  	if err != nil {
  9241  		goto ReadStructBeginError
  9242  	}
  9243  
  9244  	for {
  9245  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  9246  		offset += l
  9247  		if err != nil {
  9248  			goto ReadFieldBeginError
  9249  		}
  9250  		if fieldTypeId == thrift.STOP {
  9251  			break
  9252  		}
  9253  		switch fieldId {
  9254  		case 1:
  9255  			if fieldTypeId == thrift.STRUCT {
  9256  				l, err = p.FastReadField1(buf[offset:])
  9257  				offset += l
  9258  				if err != nil {
  9259  					goto ReadFieldError
  9260  				}
  9261  			} else {
  9262  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9263  				offset += l
  9264  				if err != nil {
  9265  					goto SkipFieldError
  9266  				}
  9267  			}
  9268  		default:
  9269  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9270  			offset += l
  9271  			if err != nil {
  9272  				goto SkipFieldError
  9273  			}
  9274  		}
  9275  
  9276  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  9277  		offset += l
  9278  		if err != nil {
  9279  			goto ReadFieldEndError
  9280  		}
  9281  	}
  9282  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  9283  	offset += l
  9284  	if err != nil {
  9285  		goto ReadStructEndError
  9286  	}
  9287  
  9288  	return offset, nil
  9289  ReadStructBeginError:
  9290  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  9291  ReadFieldBeginError:
  9292  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  9293  ReadFieldError:
  9294  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceApiBodyMethodArgs[fieldId]), err)
  9295  SkipFieldError:
  9296  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  9297  ReadFieldEndError:
  9298  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  9299  ReadStructEndError:
  9300  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  9301  }
  9302  
  9303  func (p *ExampleServiceApiBodyMethodArgs) FastReadField1(buf []byte) (int, error) {
  9304  	offset := 0
  9305  	p.Req = NewExampleApiBody()
  9306  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
  9307  		return offset, err
  9308  	} else {
  9309  		offset += l
  9310  	}
  9311  	return offset, nil
  9312  }
  9313  
  9314  // for compatibility
  9315  func (p *ExampleServiceApiBodyMethodArgs) FastWrite(buf []byte) int {
  9316  	return 0
  9317  }
  9318  
  9319  func (p *ExampleServiceApiBodyMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9320  	offset := 0
  9321  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ApiBodyMethod_args")
  9322  	if p != nil {
  9323  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  9324  	}
  9325  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  9326  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  9327  	return offset
  9328  }
  9329  
  9330  func (p *ExampleServiceApiBodyMethodArgs) BLength() int {
  9331  	l := 0
  9332  	l += bthrift.Binary.StructBeginLength("ApiBodyMethod_args")
  9333  	if p != nil {
  9334  		l += p.field1Length()
  9335  	}
  9336  	l += bthrift.Binary.FieldStopLength()
  9337  	l += bthrift.Binary.StructEndLength()
  9338  	return l
  9339  }
  9340  
  9341  func (p *ExampleServiceApiBodyMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9342  	offset := 0
  9343  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
  9344  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
  9345  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  9346  	return offset
  9347  }
  9348  
  9349  func (p *ExampleServiceApiBodyMethodArgs) field1Length() int {
  9350  	l := 0
  9351  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
  9352  	l += p.Req.BLength()
  9353  	l += bthrift.Binary.FieldEndLength()
  9354  	return l
  9355  }
  9356  
  9357  func (p *ExampleServiceApiBodyMethodResult) FastRead(buf []byte) (int, error) {
  9358  	var err error
  9359  	var offset int
  9360  	var l int
  9361  	var fieldTypeId thrift.TType
  9362  	var fieldId int16
  9363  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  9364  	offset += l
  9365  	if err != nil {
  9366  		goto ReadStructBeginError
  9367  	}
  9368  
  9369  	for {
  9370  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  9371  		offset += l
  9372  		if err != nil {
  9373  			goto ReadFieldBeginError
  9374  		}
  9375  		if fieldTypeId == thrift.STOP {
  9376  			break
  9377  		}
  9378  		switch fieldId {
  9379  		case 0:
  9380  			if fieldTypeId == thrift.STRUCT {
  9381  				l, err = p.FastReadField0(buf[offset:])
  9382  				offset += l
  9383  				if err != nil {
  9384  					goto ReadFieldError
  9385  				}
  9386  			} else {
  9387  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9388  				offset += l
  9389  				if err != nil {
  9390  					goto SkipFieldError
  9391  				}
  9392  			}
  9393  		default:
  9394  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9395  			offset += l
  9396  			if err != nil {
  9397  				goto SkipFieldError
  9398  			}
  9399  		}
  9400  
  9401  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  9402  		offset += l
  9403  		if err != nil {
  9404  			goto ReadFieldEndError
  9405  		}
  9406  	}
  9407  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  9408  	offset += l
  9409  	if err != nil {
  9410  		goto ReadStructEndError
  9411  	}
  9412  
  9413  	return offset, nil
  9414  ReadStructBeginError:
  9415  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  9416  ReadFieldBeginError:
  9417  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  9418  ReadFieldError:
  9419  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceApiBodyMethodResult[fieldId]), err)
  9420  SkipFieldError:
  9421  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  9422  ReadFieldEndError:
  9423  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  9424  ReadStructEndError:
  9425  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  9426  }
  9427  
  9428  func (p *ExampleServiceApiBodyMethodResult) FastReadField0(buf []byte) (int, error) {
  9429  	offset := 0
  9430  	p.Success = NewExampleApiBody()
  9431  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
  9432  		return offset, err
  9433  	} else {
  9434  		offset += l
  9435  	}
  9436  	return offset, nil
  9437  }
  9438  
  9439  // for compatibility
  9440  func (p *ExampleServiceApiBodyMethodResult) FastWrite(buf []byte) int {
  9441  	return 0
  9442  }
  9443  
  9444  func (p *ExampleServiceApiBodyMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9445  	offset := 0
  9446  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "ApiBodyMethod_result")
  9447  	if p != nil {
  9448  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
  9449  	}
  9450  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  9451  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  9452  	return offset
  9453  }
  9454  
  9455  func (p *ExampleServiceApiBodyMethodResult) BLength() int {
  9456  	l := 0
  9457  	l += bthrift.Binary.StructBeginLength("ApiBodyMethod_result")
  9458  	if p != nil {
  9459  		l += p.field0Length()
  9460  	}
  9461  	l += bthrift.Binary.FieldStopLength()
  9462  	l += bthrift.Binary.StructEndLength()
  9463  	return l
  9464  }
  9465  
  9466  func (p *ExampleServiceApiBodyMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9467  	offset := 0
  9468  	if p.IsSetSuccess() {
  9469  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
  9470  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
  9471  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  9472  	}
  9473  	return offset
  9474  }
  9475  
  9476  func (p *ExampleServiceApiBodyMethodResult) field0Length() int {
  9477  	l := 0
  9478  	if p.IsSetSuccess() {
  9479  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
  9480  		l += p.Success.BLength()
  9481  		l += bthrift.Binary.FieldEndLength()
  9482  	}
  9483  	return l
  9484  }
  9485  
  9486  func (p *ExampleServicePostFormMethodArgs) FastRead(buf []byte) (int, error) {
  9487  	var err error
  9488  	var offset int
  9489  	var l int
  9490  	var fieldTypeId thrift.TType
  9491  	var fieldId int16
  9492  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  9493  	offset += l
  9494  	if err != nil {
  9495  		goto ReadStructBeginError
  9496  	}
  9497  
  9498  	for {
  9499  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  9500  		offset += l
  9501  		if err != nil {
  9502  			goto ReadFieldBeginError
  9503  		}
  9504  		if fieldTypeId == thrift.STOP {
  9505  			break
  9506  		}
  9507  		switch fieldId {
  9508  		case 1:
  9509  			if fieldTypeId == thrift.STRUCT {
  9510  				l, err = p.FastReadField1(buf[offset:])
  9511  				offset += l
  9512  				if err != nil {
  9513  					goto ReadFieldError
  9514  				}
  9515  			} else {
  9516  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9517  				offset += l
  9518  				if err != nil {
  9519  					goto SkipFieldError
  9520  				}
  9521  			}
  9522  		default:
  9523  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9524  			offset += l
  9525  			if err != nil {
  9526  				goto SkipFieldError
  9527  			}
  9528  		}
  9529  
  9530  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  9531  		offset += l
  9532  		if err != nil {
  9533  			goto ReadFieldEndError
  9534  		}
  9535  	}
  9536  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  9537  	offset += l
  9538  	if err != nil {
  9539  		goto ReadStructEndError
  9540  	}
  9541  
  9542  	return offset, nil
  9543  ReadStructBeginError:
  9544  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  9545  ReadFieldBeginError:
  9546  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  9547  ReadFieldError:
  9548  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServicePostFormMethodArgs[fieldId]), err)
  9549  SkipFieldError:
  9550  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  9551  ReadFieldEndError:
  9552  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  9553  ReadStructEndError:
  9554  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  9555  }
  9556  
  9557  func (p *ExampleServicePostFormMethodArgs) FastReadField1(buf []byte) (int, error) {
  9558  	offset := 0
  9559  	p.Req = NewExamplePostForm()
  9560  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
  9561  		return offset, err
  9562  	} else {
  9563  		offset += l
  9564  	}
  9565  	return offset, nil
  9566  }
  9567  
  9568  // for compatibility
  9569  func (p *ExampleServicePostFormMethodArgs) FastWrite(buf []byte) int {
  9570  	return 0
  9571  }
  9572  
  9573  func (p *ExampleServicePostFormMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9574  	offset := 0
  9575  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "PostFormMethod_args")
  9576  	if p != nil {
  9577  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  9578  	}
  9579  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  9580  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  9581  	return offset
  9582  }
  9583  
  9584  func (p *ExampleServicePostFormMethodArgs) BLength() int {
  9585  	l := 0
  9586  	l += bthrift.Binary.StructBeginLength("PostFormMethod_args")
  9587  	if p != nil {
  9588  		l += p.field1Length()
  9589  	}
  9590  	l += bthrift.Binary.FieldStopLength()
  9591  	l += bthrift.Binary.StructEndLength()
  9592  	return l
  9593  }
  9594  
  9595  func (p *ExampleServicePostFormMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9596  	offset := 0
  9597  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
  9598  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
  9599  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  9600  	return offset
  9601  }
  9602  
  9603  func (p *ExampleServicePostFormMethodArgs) field1Length() int {
  9604  	l := 0
  9605  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
  9606  	l += p.Req.BLength()
  9607  	l += bthrift.Binary.FieldEndLength()
  9608  	return l
  9609  }
  9610  
  9611  func (p *ExampleServicePostFormMethodResult) FastRead(buf []byte) (int, error) {
  9612  	var err error
  9613  	var offset int
  9614  	var l int
  9615  	var fieldTypeId thrift.TType
  9616  	var fieldId int16
  9617  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  9618  	offset += l
  9619  	if err != nil {
  9620  		goto ReadStructBeginError
  9621  	}
  9622  
  9623  	for {
  9624  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  9625  		offset += l
  9626  		if err != nil {
  9627  			goto ReadFieldBeginError
  9628  		}
  9629  		if fieldTypeId == thrift.STOP {
  9630  			break
  9631  		}
  9632  		switch fieldId {
  9633  		case 0:
  9634  			if fieldTypeId == thrift.STRUCT {
  9635  				l, err = p.FastReadField0(buf[offset:])
  9636  				offset += l
  9637  				if err != nil {
  9638  					goto ReadFieldError
  9639  				}
  9640  			} else {
  9641  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9642  				offset += l
  9643  				if err != nil {
  9644  					goto SkipFieldError
  9645  				}
  9646  			}
  9647  		default:
  9648  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9649  			offset += l
  9650  			if err != nil {
  9651  				goto SkipFieldError
  9652  			}
  9653  		}
  9654  
  9655  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  9656  		offset += l
  9657  		if err != nil {
  9658  			goto ReadFieldEndError
  9659  		}
  9660  	}
  9661  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  9662  	offset += l
  9663  	if err != nil {
  9664  		goto ReadStructEndError
  9665  	}
  9666  
  9667  	return offset, nil
  9668  ReadStructBeginError:
  9669  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  9670  ReadFieldBeginError:
  9671  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  9672  ReadFieldError:
  9673  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServicePostFormMethodResult[fieldId]), err)
  9674  SkipFieldError:
  9675  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  9676  ReadFieldEndError:
  9677  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  9678  ReadStructEndError:
  9679  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  9680  }
  9681  
  9682  func (p *ExampleServicePostFormMethodResult) FastReadField0(buf []byte) (int, error) {
  9683  	offset := 0
  9684  	p.Success = NewExamplePostForm()
  9685  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
  9686  		return offset, err
  9687  	} else {
  9688  		offset += l
  9689  	}
  9690  	return offset, nil
  9691  }
  9692  
  9693  // for compatibility
  9694  func (p *ExampleServicePostFormMethodResult) FastWrite(buf []byte) int {
  9695  	return 0
  9696  }
  9697  
  9698  func (p *ExampleServicePostFormMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9699  	offset := 0
  9700  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "PostFormMethod_result")
  9701  	if p != nil {
  9702  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
  9703  	}
  9704  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  9705  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  9706  	return offset
  9707  }
  9708  
  9709  func (p *ExampleServicePostFormMethodResult) BLength() int {
  9710  	l := 0
  9711  	l += bthrift.Binary.StructBeginLength("PostFormMethod_result")
  9712  	if p != nil {
  9713  		l += p.field0Length()
  9714  	}
  9715  	l += bthrift.Binary.FieldStopLength()
  9716  	l += bthrift.Binary.StructEndLength()
  9717  	return l
  9718  }
  9719  
  9720  func (p *ExampleServicePostFormMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9721  	offset := 0
  9722  	if p.IsSetSuccess() {
  9723  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
  9724  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
  9725  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  9726  	}
  9727  	return offset
  9728  }
  9729  
  9730  func (p *ExampleServicePostFormMethodResult) field0Length() int {
  9731  	l := 0
  9732  	if p.IsSetSuccess() {
  9733  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
  9734  		l += p.Success.BLength()
  9735  		l += bthrift.Binary.FieldEndLength()
  9736  	}
  9737  	return l
  9738  }
  9739  
  9740  func (p *ExampleServiceDynamicStructMethodArgs) FastRead(buf []byte) (int, error) {
  9741  	var err error
  9742  	var offset int
  9743  	var l int
  9744  	var fieldTypeId thrift.TType
  9745  	var fieldId int16
  9746  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  9747  	offset += l
  9748  	if err != nil {
  9749  		goto ReadStructBeginError
  9750  	}
  9751  
  9752  	for {
  9753  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  9754  		offset += l
  9755  		if err != nil {
  9756  			goto ReadFieldBeginError
  9757  		}
  9758  		if fieldTypeId == thrift.STOP {
  9759  			break
  9760  		}
  9761  		switch fieldId {
  9762  		case 1:
  9763  			if fieldTypeId == thrift.STRUCT {
  9764  				l, err = p.FastReadField1(buf[offset:])
  9765  				offset += l
  9766  				if err != nil {
  9767  					goto ReadFieldError
  9768  				}
  9769  			} else {
  9770  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9771  				offset += l
  9772  				if err != nil {
  9773  					goto SkipFieldError
  9774  				}
  9775  			}
  9776  		default:
  9777  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9778  			offset += l
  9779  			if err != nil {
  9780  				goto SkipFieldError
  9781  			}
  9782  		}
  9783  
  9784  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  9785  		offset += l
  9786  		if err != nil {
  9787  			goto ReadFieldEndError
  9788  		}
  9789  	}
  9790  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  9791  	offset += l
  9792  	if err != nil {
  9793  		goto ReadStructEndError
  9794  	}
  9795  
  9796  	return offset, nil
  9797  ReadStructBeginError:
  9798  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  9799  ReadFieldBeginError:
  9800  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  9801  ReadFieldError:
  9802  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceDynamicStructMethodArgs[fieldId]), err)
  9803  SkipFieldError:
  9804  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  9805  ReadFieldEndError:
  9806  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  9807  ReadStructEndError:
  9808  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  9809  }
  9810  
  9811  func (p *ExampleServiceDynamicStructMethodArgs) FastReadField1(buf []byte) (int, error) {
  9812  	offset := 0
  9813  	p.Req = NewExampleDynamicStruct()
  9814  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
  9815  		return offset, err
  9816  	} else {
  9817  		offset += l
  9818  	}
  9819  	return offset, nil
  9820  }
  9821  
  9822  // for compatibility
  9823  func (p *ExampleServiceDynamicStructMethodArgs) FastWrite(buf []byte) int {
  9824  	return 0
  9825  }
  9826  
  9827  func (p *ExampleServiceDynamicStructMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9828  	offset := 0
  9829  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "DynamicStructMethod_args")
  9830  	if p != nil {
  9831  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
  9832  	}
  9833  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  9834  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  9835  	return offset
  9836  }
  9837  
  9838  func (p *ExampleServiceDynamicStructMethodArgs) BLength() int {
  9839  	l := 0
  9840  	l += bthrift.Binary.StructBeginLength("DynamicStructMethod_args")
  9841  	if p != nil {
  9842  		l += p.field1Length()
  9843  	}
  9844  	l += bthrift.Binary.FieldStopLength()
  9845  	l += bthrift.Binary.StructEndLength()
  9846  	return l
  9847  }
  9848  
  9849  func (p *ExampleServiceDynamicStructMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9850  	offset := 0
  9851  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
  9852  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
  9853  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  9854  	return offset
  9855  }
  9856  
  9857  func (p *ExampleServiceDynamicStructMethodArgs) field1Length() int {
  9858  	l := 0
  9859  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
  9860  	l += p.Req.BLength()
  9861  	l += bthrift.Binary.FieldEndLength()
  9862  	return l
  9863  }
  9864  
  9865  func (p *ExampleServiceDynamicStructMethodResult) FastRead(buf []byte) (int, error) {
  9866  	var err error
  9867  	var offset int
  9868  	var l int
  9869  	var fieldTypeId thrift.TType
  9870  	var fieldId int16
  9871  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
  9872  	offset += l
  9873  	if err != nil {
  9874  		goto ReadStructBeginError
  9875  	}
  9876  
  9877  	for {
  9878  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
  9879  		offset += l
  9880  		if err != nil {
  9881  			goto ReadFieldBeginError
  9882  		}
  9883  		if fieldTypeId == thrift.STOP {
  9884  			break
  9885  		}
  9886  		switch fieldId {
  9887  		case 0:
  9888  			if fieldTypeId == thrift.STRUCT {
  9889  				l, err = p.FastReadField0(buf[offset:])
  9890  				offset += l
  9891  				if err != nil {
  9892  					goto ReadFieldError
  9893  				}
  9894  			} else {
  9895  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9896  				offset += l
  9897  				if err != nil {
  9898  					goto SkipFieldError
  9899  				}
  9900  			}
  9901  		default:
  9902  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
  9903  			offset += l
  9904  			if err != nil {
  9905  				goto SkipFieldError
  9906  			}
  9907  		}
  9908  
  9909  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
  9910  		offset += l
  9911  		if err != nil {
  9912  			goto ReadFieldEndError
  9913  		}
  9914  	}
  9915  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
  9916  	offset += l
  9917  	if err != nil {
  9918  		goto ReadStructEndError
  9919  	}
  9920  
  9921  	return offset, nil
  9922  ReadStructBeginError:
  9923  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
  9924  ReadFieldBeginError:
  9925  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
  9926  ReadFieldError:
  9927  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceDynamicStructMethodResult[fieldId]), err)
  9928  SkipFieldError:
  9929  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
  9930  ReadFieldEndError:
  9931  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
  9932  ReadStructEndError:
  9933  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
  9934  }
  9935  
  9936  func (p *ExampleServiceDynamicStructMethodResult) FastReadField0(buf []byte) (int, error) {
  9937  	offset := 0
  9938  	p.Success = NewExampleDynamicStruct()
  9939  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
  9940  		return offset, err
  9941  	} else {
  9942  		offset += l
  9943  	}
  9944  	return offset, nil
  9945  }
  9946  
  9947  // for compatibility
  9948  func (p *ExampleServiceDynamicStructMethodResult) FastWrite(buf []byte) int {
  9949  	return 0
  9950  }
  9951  
  9952  func (p *ExampleServiceDynamicStructMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9953  	offset := 0
  9954  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "DynamicStructMethod_result")
  9955  	if p != nil {
  9956  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
  9957  	}
  9958  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
  9959  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
  9960  	return offset
  9961  }
  9962  
  9963  func (p *ExampleServiceDynamicStructMethodResult) BLength() int {
  9964  	l := 0
  9965  	l += bthrift.Binary.StructBeginLength("DynamicStructMethod_result")
  9966  	if p != nil {
  9967  		l += p.field0Length()
  9968  	}
  9969  	l += bthrift.Binary.FieldStopLength()
  9970  	l += bthrift.Binary.StructEndLength()
  9971  	return l
  9972  }
  9973  
  9974  func (p *ExampleServiceDynamicStructMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
  9975  	offset := 0
  9976  	if p.IsSetSuccess() {
  9977  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
  9978  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
  9979  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
  9980  	}
  9981  	return offset
  9982  }
  9983  
  9984  func (p *ExampleServiceDynamicStructMethodResult) field0Length() int {
  9985  	l := 0
  9986  	if p.IsSetSuccess() {
  9987  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
  9988  		l += p.Success.BLength()
  9989  		l += bthrift.Binary.FieldEndLength()
  9990  	}
  9991  	return l
  9992  }
  9993  
  9994  func (p *ExampleServiceBase64BinaryMethodArgs) FastRead(buf []byte) (int, error) {
  9995  	var err error
  9996  	var offset int
  9997  	var l int
  9998  	var fieldTypeId thrift.TType
  9999  	var fieldId int16
 10000  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 10001  	offset += l
 10002  	if err != nil {
 10003  		goto ReadStructBeginError
 10004  	}
 10005  
 10006  	for {
 10007  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 10008  		offset += l
 10009  		if err != nil {
 10010  			goto ReadFieldBeginError
 10011  		}
 10012  		if fieldTypeId == thrift.STOP {
 10013  			break
 10014  		}
 10015  		switch fieldId {
 10016  		case 1:
 10017  			if fieldTypeId == thrift.STRUCT {
 10018  				l, err = p.FastReadField1(buf[offset:])
 10019  				offset += l
 10020  				if err != nil {
 10021  					goto ReadFieldError
 10022  				}
 10023  			} else {
 10024  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10025  				offset += l
 10026  				if err != nil {
 10027  					goto SkipFieldError
 10028  				}
 10029  			}
 10030  		default:
 10031  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10032  			offset += l
 10033  			if err != nil {
 10034  				goto SkipFieldError
 10035  			}
 10036  		}
 10037  
 10038  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 10039  		offset += l
 10040  		if err != nil {
 10041  			goto ReadFieldEndError
 10042  		}
 10043  	}
 10044  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 10045  	offset += l
 10046  	if err != nil {
 10047  		goto ReadStructEndError
 10048  	}
 10049  
 10050  	return offset, nil
 10051  ReadStructBeginError:
 10052  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 10053  ReadFieldBeginError:
 10054  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 10055  ReadFieldError:
 10056  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceBase64BinaryMethodArgs[fieldId]), err)
 10057  SkipFieldError:
 10058  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 10059  ReadFieldEndError:
 10060  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 10061  ReadStructEndError:
 10062  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 10063  }
 10064  
 10065  func (p *ExampleServiceBase64BinaryMethodArgs) FastReadField1(buf []byte) (int, error) {
 10066  	offset := 0
 10067  	p.Req = NewExampleBase64Binary()
 10068  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
 10069  		return offset, err
 10070  	} else {
 10071  		offset += l
 10072  	}
 10073  	return offset, nil
 10074  }
 10075  
 10076  // for compatibility
 10077  func (p *ExampleServiceBase64BinaryMethodArgs) FastWrite(buf []byte) int {
 10078  	return 0
 10079  }
 10080  
 10081  func (p *ExampleServiceBase64BinaryMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10082  	offset := 0
 10083  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "Base64BinaryMethod_args")
 10084  	if p != nil {
 10085  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
 10086  	}
 10087  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 10088  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 10089  	return offset
 10090  }
 10091  
 10092  func (p *ExampleServiceBase64BinaryMethodArgs) BLength() int {
 10093  	l := 0
 10094  	l += bthrift.Binary.StructBeginLength("Base64BinaryMethod_args")
 10095  	if p != nil {
 10096  		l += p.field1Length()
 10097  	}
 10098  	l += bthrift.Binary.FieldStopLength()
 10099  	l += bthrift.Binary.StructEndLength()
 10100  	return l
 10101  }
 10102  
 10103  func (p *ExampleServiceBase64BinaryMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10104  	offset := 0
 10105  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
 10106  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
 10107  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 10108  	return offset
 10109  }
 10110  
 10111  func (p *ExampleServiceBase64BinaryMethodArgs) field1Length() int {
 10112  	l := 0
 10113  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
 10114  	l += p.Req.BLength()
 10115  	l += bthrift.Binary.FieldEndLength()
 10116  	return l
 10117  }
 10118  
 10119  func (p *ExampleServiceBase64BinaryMethodResult) FastRead(buf []byte) (int, error) {
 10120  	var err error
 10121  	var offset int
 10122  	var l int
 10123  	var fieldTypeId thrift.TType
 10124  	var fieldId int16
 10125  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 10126  	offset += l
 10127  	if err != nil {
 10128  		goto ReadStructBeginError
 10129  	}
 10130  
 10131  	for {
 10132  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 10133  		offset += l
 10134  		if err != nil {
 10135  			goto ReadFieldBeginError
 10136  		}
 10137  		if fieldTypeId == thrift.STOP {
 10138  			break
 10139  		}
 10140  		switch fieldId {
 10141  		case 0:
 10142  			if fieldTypeId == thrift.STRUCT {
 10143  				l, err = p.FastReadField0(buf[offset:])
 10144  				offset += l
 10145  				if err != nil {
 10146  					goto ReadFieldError
 10147  				}
 10148  			} else {
 10149  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10150  				offset += l
 10151  				if err != nil {
 10152  					goto SkipFieldError
 10153  				}
 10154  			}
 10155  		default:
 10156  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10157  			offset += l
 10158  			if err != nil {
 10159  				goto SkipFieldError
 10160  			}
 10161  		}
 10162  
 10163  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 10164  		offset += l
 10165  		if err != nil {
 10166  			goto ReadFieldEndError
 10167  		}
 10168  	}
 10169  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 10170  	offset += l
 10171  	if err != nil {
 10172  		goto ReadStructEndError
 10173  	}
 10174  
 10175  	return offset, nil
 10176  ReadStructBeginError:
 10177  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 10178  ReadFieldBeginError:
 10179  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 10180  ReadFieldError:
 10181  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceBase64BinaryMethodResult[fieldId]), err)
 10182  SkipFieldError:
 10183  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 10184  ReadFieldEndError:
 10185  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 10186  ReadStructEndError:
 10187  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 10188  }
 10189  
 10190  func (p *ExampleServiceBase64BinaryMethodResult) FastReadField0(buf []byte) (int, error) {
 10191  	offset := 0
 10192  	p.Success = NewExampleBase64Binary()
 10193  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
 10194  		return offset, err
 10195  	} else {
 10196  		offset += l
 10197  	}
 10198  	return offset, nil
 10199  }
 10200  
 10201  // for compatibility
 10202  func (p *ExampleServiceBase64BinaryMethodResult) FastWrite(buf []byte) int {
 10203  	return 0
 10204  }
 10205  
 10206  func (p *ExampleServiceBase64BinaryMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10207  	offset := 0
 10208  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "Base64BinaryMethod_result")
 10209  	if p != nil {
 10210  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
 10211  	}
 10212  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 10213  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 10214  	return offset
 10215  }
 10216  
 10217  func (p *ExampleServiceBase64BinaryMethodResult) BLength() int {
 10218  	l := 0
 10219  	l += bthrift.Binary.StructBeginLength("Base64BinaryMethod_result")
 10220  	if p != nil {
 10221  		l += p.field0Length()
 10222  	}
 10223  	l += bthrift.Binary.FieldStopLength()
 10224  	l += bthrift.Binary.StructEndLength()
 10225  	return l
 10226  }
 10227  
 10228  func (p *ExampleServiceBase64BinaryMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10229  	offset := 0
 10230  	if p.IsSetSuccess() {
 10231  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
 10232  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
 10233  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 10234  	}
 10235  	return offset
 10236  }
 10237  
 10238  func (p *ExampleServiceBase64BinaryMethodResult) field0Length() int {
 10239  	l := 0
 10240  	if p.IsSetSuccess() {
 10241  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
 10242  		l += p.Success.BLength()
 10243  		l += bthrift.Binary.FieldEndLength()
 10244  	}
 10245  	return l
 10246  }
 10247  
 10248  func (p *ExampleServiceDefaultValueMethodArgs) FastRead(buf []byte) (int, error) {
 10249  	var err error
 10250  	var offset int
 10251  	var l int
 10252  	var fieldTypeId thrift.TType
 10253  	var fieldId int16
 10254  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 10255  	offset += l
 10256  	if err != nil {
 10257  		goto ReadStructBeginError
 10258  	}
 10259  
 10260  	for {
 10261  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 10262  		offset += l
 10263  		if err != nil {
 10264  			goto ReadFieldBeginError
 10265  		}
 10266  		if fieldTypeId == thrift.STOP {
 10267  			break
 10268  		}
 10269  		switch fieldId {
 10270  		case 1:
 10271  			if fieldTypeId == thrift.STRUCT {
 10272  				l, err = p.FastReadField1(buf[offset:])
 10273  				offset += l
 10274  				if err != nil {
 10275  					goto ReadFieldError
 10276  				}
 10277  			} else {
 10278  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10279  				offset += l
 10280  				if err != nil {
 10281  					goto SkipFieldError
 10282  				}
 10283  			}
 10284  		default:
 10285  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10286  			offset += l
 10287  			if err != nil {
 10288  				goto SkipFieldError
 10289  			}
 10290  		}
 10291  
 10292  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 10293  		offset += l
 10294  		if err != nil {
 10295  			goto ReadFieldEndError
 10296  		}
 10297  	}
 10298  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 10299  	offset += l
 10300  	if err != nil {
 10301  		goto ReadStructEndError
 10302  	}
 10303  
 10304  	return offset, nil
 10305  ReadStructBeginError:
 10306  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 10307  ReadFieldBeginError:
 10308  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 10309  ReadFieldError:
 10310  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceDefaultValueMethodArgs[fieldId]), err)
 10311  SkipFieldError:
 10312  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 10313  ReadFieldEndError:
 10314  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 10315  ReadStructEndError:
 10316  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 10317  }
 10318  
 10319  func (p *ExampleServiceDefaultValueMethodArgs) FastReadField1(buf []byte) (int, error) {
 10320  	offset := 0
 10321  	p.Req = NewExampleDefaultValue()
 10322  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
 10323  		return offset, err
 10324  	} else {
 10325  		offset += l
 10326  	}
 10327  	return offset, nil
 10328  }
 10329  
 10330  // for compatibility
 10331  func (p *ExampleServiceDefaultValueMethodArgs) FastWrite(buf []byte) int {
 10332  	return 0
 10333  }
 10334  
 10335  func (p *ExampleServiceDefaultValueMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10336  	offset := 0
 10337  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "DefaultValueMethod_args")
 10338  	if p != nil {
 10339  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
 10340  	}
 10341  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 10342  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 10343  	return offset
 10344  }
 10345  
 10346  func (p *ExampleServiceDefaultValueMethodArgs) BLength() int {
 10347  	l := 0
 10348  	l += bthrift.Binary.StructBeginLength("DefaultValueMethod_args")
 10349  	if p != nil {
 10350  		l += p.field1Length()
 10351  	}
 10352  	l += bthrift.Binary.FieldStopLength()
 10353  	l += bthrift.Binary.StructEndLength()
 10354  	return l
 10355  }
 10356  
 10357  func (p *ExampleServiceDefaultValueMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10358  	offset := 0
 10359  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
 10360  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
 10361  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 10362  	return offset
 10363  }
 10364  
 10365  func (p *ExampleServiceDefaultValueMethodArgs) field1Length() int {
 10366  	l := 0
 10367  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
 10368  	l += p.Req.BLength()
 10369  	l += bthrift.Binary.FieldEndLength()
 10370  	return l
 10371  }
 10372  
 10373  func (p *ExampleServiceDefaultValueMethodResult) FastRead(buf []byte) (int, error) {
 10374  	var err error
 10375  	var offset int
 10376  	var l int
 10377  	var fieldTypeId thrift.TType
 10378  	var fieldId int16
 10379  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 10380  	offset += l
 10381  	if err != nil {
 10382  		goto ReadStructBeginError
 10383  	}
 10384  
 10385  	for {
 10386  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 10387  		offset += l
 10388  		if err != nil {
 10389  			goto ReadFieldBeginError
 10390  		}
 10391  		if fieldTypeId == thrift.STOP {
 10392  			break
 10393  		}
 10394  		switch fieldId {
 10395  		case 0:
 10396  			if fieldTypeId == thrift.STRUCT {
 10397  				l, err = p.FastReadField0(buf[offset:])
 10398  				offset += l
 10399  				if err != nil {
 10400  					goto ReadFieldError
 10401  				}
 10402  			} else {
 10403  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10404  				offset += l
 10405  				if err != nil {
 10406  					goto SkipFieldError
 10407  				}
 10408  			}
 10409  		default:
 10410  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10411  			offset += l
 10412  			if err != nil {
 10413  				goto SkipFieldError
 10414  			}
 10415  		}
 10416  
 10417  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 10418  		offset += l
 10419  		if err != nil {
 10420  			goto ReadFieldEndError
 10421  		}
 10422  	}
 10423  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 10424  	offset += l
 10425  	if err != nil {
 10426  		goto ReadStructEndError
 10427  	}
 10428  
 10429  	return offset, nil
 10430  ReadStructBeginError:
 10431  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 10432  ReadFieldBeginError:
 10433  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 10434  ReadFieldError:
 10435  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceDefaultValueMethodResult[fieldId]), err)
 10436  SkipFieldError:
 10437  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 10438  ReadFieldEndError:
 10439  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 10440  ReadStructEndError:
 10441  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 10442  }
 10443  
 10444  func (p *ExampleServiceDefaultValueMethodResult) FastReadField0(buf []byte) (int, error) {
 10445  	offset := 0
 10446  	p.Success = NewExampleDefaultValue()
 10447  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
 10448  		return offset, err
 10449  	} else {
 10450  		offset += l
 10451  	}
 10452  	return offset, nil
 10453  }
 10454  
 10455  // for compatibility
 10456  func (p *ExampleServiceDefaultValueMethodResult) FastWrite(buf []byte) int {
 10457  	return 0
 10458  }
 10459  
 10460  func (p *ExampleServiceDefaultValueMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10461  	offset := 0
 10462  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "DefaultValueMethod_result")
 10463  	if p != nil {
 10464  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
 10465  	}
 10466  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 10467  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 10468  	return offset
 10469  }
 10470  
 10471  func (p *ExampleServiceDefaultValueMethodResult) BLength() int {
 10472  	l := 0
 10473  	l += bthrift.Binary.StructBeginLength("DefaultValueMethod_result")
 10474  	if p != nil {
 10475  		l += p.field0Length()
 10476  	}
 10477  	l += bthrift.Binary.FieldStopLength()
 10478  	l += bthrift.Binary.StructEndLength()
 10479  	return l
 10480  }
 10481  
 10482  func (p *ExampleServiceDefaultValueMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10483  	offset := 0
 10484  	if p.IsSetSuccess() {
 10485  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
 10486  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
 10487  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 10488  	}
 10489  	return offset
 10490  }
 10491  
 10492  func (p *ExampleServiceDefaultValueMethodResult) field0Length() int {
 10493  	l := 0
 10494  	if p.IsSetSuccess() {
 10495  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
 10496  		l += p.Success.BLength()
 10497  		l += bthrift.Binary.FieldEndLength()
 10498  	}
 10499  	return l
 10500  }
 10501  
 10502  func (p *ExampleServiceOptionalDefaultValueMethodArgs) FastRead(buf []byte) (int, error) {
 10503  	var err error
 10504  	var offset int
 10505  	var l int
 10506  	var fieldTypeId thrift.TType
 10507  	var fieldId int16
 10508  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 10509  	offset += l
 10510  	if err != nil {
 10511  		goto ReadStructBeginError
 10512  	}
 10513  
 10514  	for {
 10515  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 10516  		offset += l
 10517  		if err != nil {
 10518  			goto ReadFieldBeginError
 10519  		}
 10520  		if fieldTypeId == thrift.STOP {
 10521  			break
 10522  		}
 10523  		switch fieldId {
 10524  		case 1:
 10525  			if fieldTypeId == thrift.STRUCT {
 10526  				l, err = p.FastReadField1(buf[offset:])
 10527  				offset += l
 10528  				if err != nil {
 10529  					goto ReadFieldError
 10530  				}
 10531  			} else {
 10532  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10533  				offset += l
 10534  				if err != nil {
 10535  					goto SkipFieldError
 10536  				}
 10537  			}
 10538  		default:
 10539  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10540  			offset += l
 10541  			if err != nil {
 10542  				goto SkipFieldError
 10543  			}
 10544  		}
 10545  
 10546  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 10547  		offset += l
 10548  		if err != nil {
 10549  			goto ReadFieldEndError
 10550  		}
 10551  	}
 10552  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 10553  	offset += l
 10554  	if err != nil {
 10555  		goto ReadStructEndError
 10556  	}
 10557  
 10558  	return offset, nil
 10559  ReadStructBeginError:
 10560  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 10561  ReadFieldBeginError:
 10562  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 10563  ReadFieldError:
 10564  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceOptionalDefaultValueMethodArgs[fieldId]), err)
 10565  SkipFieldError:
 10566  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 10567  ReadFieldEndError:
 10568  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 10569  ReadStructEndError:
 10570  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 10571  }
 10572  
 10573  func (p *ExampleServiceOptionalDefaultValueMethodArgs) FastReadField1(buf []byte) (int, error) {
 10574  	offset := 0
 10575  	p.Req = NewExampleOptionalDefaultValue()
 10576  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
 10577  		return offset, err
 10578  	} else {
 10579  		offset += l
 10580  	}
 10581  	return offset, nil
 10582  }
 10583  
 10584  // for compatibility
 10585  func (p *ExampleServiceOptionalDefaultValueMethodArgs) FastWrite(buf []byte) int {
 10586  	return 0
 10587  }
 10588  
 10589  func (p *ExampleServiceOptionalDefaultValueMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10590  	offset := 0
 10591  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "OptionalDefaultValueMethod_args")
 10592  	if p != nil {
 10593  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
 10594  	}
 10595  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 10596  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 10597  	return offset
 10598  }
 10599  
 10600  func (p *ExampleServiceOptionalDefaultValueMethodArgs) BLength() int {
 10601  	l := 0
 10602  	l += bthrift.Binary.StructBeginLength("OptionalDefaultValueMethod_args")
 10603  	if p != nil {
 10604  		l += p.field1Length()
 10605  	}
 10606  	l += bthrift.Binary.FieldStopLength()
 10607  	l += bthrift.Binary.StructEndLength()
 10608  	return l
 10609  }
 10610  
 10611  func (p *ExampleServiceOptionalDefaultValueMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10612  	offset := 0
 10613  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
 10614  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
 10615  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 10616  	return offset
 10617  }
 10618  
 10619  func (p *ExampleServiceOptionalDefaultValueMethodArgs) field1Length() int {
 10620  	l := 0
 10621  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
 10622  	l += p.Req.BLength()
 10623  	l += bthrift.Binary.FieldEndLength()
 10624  	return l
 10625  }
 10626  
 10627  func (p *ExampleServiceOptionalDefaultValueMethodResult) FastRead(buf []byte) (int, error) {
 10628  	var err error
 10629  	var offset int
 10630  	var l int
 10631  	var fieldTypeId thrift.TType
 10632  	var fieldId int16
 10633  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 10634  	offset += l
 10635  	if err != nil {
 10636  		goto ReadStructBeginError
 10637  	}
 10638  
 10639  	for {
 10640  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 10641  		offset += l
 10642  		if err != nil {
 10643  			goto ReadFieldBeginError
 10644  		}
 10645  		if fieldTypeId == thrift.STOP {
 10646  			break
 10647  		}
 10648  		switch fieldId {
 10649  		case 0:
 10650  			if fieldTypeId == thrift.STRUCT {
 10651  				l, err = p.FastReadField0(buf[offset:])
 10652  				offset += l
 10653  				if err != nil {
 10654  					goto ReadFieldError
 10655  				}
 10656  			} else {
 10657  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10658  				offset += l
 10659  				if err != nil {
 10660  					goto SkipFieldError
 10661  				}
 10662  			}
 10663  		default:
 10664  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10665  			offset += l
 10666  			if err != nil {
 10667  				goto SkipFieldError
 10668  			}
 10669  		}
 10670  
 10671  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 10672  		offset += l
 10673  		if err != nil {
 10674  			goto ReadFieldEndError
 10675  		}
 10676  	}
 10677  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 10678  	offset += l
 10679  	if err != nil {
 10680  		goto ReadStructEndError
 10681  	}
 10682  
 10683  	return offset, nil
 10684  ReadStructBeginError:
 10685  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 10686  ReadFieldBeginError:
 10687  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 10688  ReadFieldError:
 10689  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceOptionalDefaultValueMethodResult[fieldId]), err)
 10690  SkipFieldError:
 10691  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 10692  ReadFieldEndError:
 10693  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 10694  ReadStructEndError:
 10695  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 10696  }
 10697  
 10698  func (p *ExampleServiceOptionalDefaultValueMethodResult) FastReadField0(buf []byte) (int, error) {
 10699  	offset := 0
 10700  	p.Success = NewExampleOptionalDefaultValue()
 10701  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
 10702  		return offset, err
 10703  	} else {
 10704  		offset += l
 10705  	}
 10706  	return offset, nil
 10707  }
 10708  
 10709  // for compatibility
 10710  func (p *ExampleServiceOptionalDefaultValueMethodResult) FastWrite(buf []byte) int {
 10711  	return 0
 10712  }
 10713  
 10714  func (p *ExampleServiceOptionalDefaultValueMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10715  	offset := 0
 10716  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "OptionalDefaultValueMethod_result")
 10717  	if p != nil {
 10718  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
 10719  	}
 10720  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 10721  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 10722  	return offset
 10723  }
 10724  
 10725  func (p *ExampleServiceOptionalDefaultValueMethodResult) BLength() int {
 10726  	l := 0
 10727  	l += bthrift.Binary.StructBeginLength("OptionalDefaultValueMethod_result")
 10728  	if p != nil {
 10729  		l += p.field0Length()
 10730  	}
 10731  	l += bthrift.Binary.FieldStopLength()
 10732  	l += bthrift.Binary.StructEndLength()
 10733  	return l
 10734  }
 10735  
 10736  func (p *ExampleServiceOptionalDefaultValueMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10737  	offset := 0
 10738  	if p.IsSetSuccess() {
 10739  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
 10740  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
 10741  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 10742  	}
 10743  	return offset
 10744  }
 10745  
 10746  func (p *ExampleServiceOptionalDefaultValueMethodResult) field0Length() int {
 10747  	l := 0
 10748  	if p.IsSetSuccess() {
 10749  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
 10750  		l += p.Success.BLength()
 10751  		l += bthrift.Binary.FieldEndLength()
 10752  	}
 10753  	return l
 10754  }
 10755  
 10756  func (p *ExampleServiceNoBodyStructMethodArgs) FastRead(buf []byte) (int, error) {
 10757  	var err error
 10758  	var offset int
 10759  	var l int
 10760  	var fieldTypeId thrift.TType
 10761  	var fieldId int16
 10762  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 10763  	offset += l
 10764  	if err != nil {
 10765  		goto ReadStructBeginError
 10766  	}
 10767  
 10768  	for {
 10769  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 10770  		offset += l
 10771  		if err != nil {
 10772  			goto ReadFieldBeginError
 10773  		}
 10774  		if fieldTypeId == thrift.STOP {
 10775  			break
 10776  		}
 10777  		switch fieldId {
 10778  		case 1:
 10779  			if fieldTypeId == thrift.STRUCT {
 10780  				l, err = p.FastReadField1(buf[offset:])
 10781  				offset += l
 10782  				if err != nil {
 10783  					goto ReadFieldError
 10784  				}
 10785  			} else {
 10786  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10787  				offset += l
 10788  				if err != nil {
 10789  					goto SkipFieldError
 10790  				}
 10791  			}
 10792  		default:
 10793  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10794  			offset += l
 10795  			if err != nil {
 10796  				goto SkipFieldError
 10797  			}
 10798  		}
 10799  
 10800  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 10801  		offset += l
 10802  		if err != nil {
 10803  			goto ReadFieldEndError
 10804  		}
 10805  	}
 10806  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 10807  	offset += l
 10808  	if err != nil {
 10809  		goto ReadStructEndError
 10810  	}
 10811  
 10812  	return offset, nil
 10813  ReadStructBeginError:
 10814  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 10815  ReadFieldBeginError:
 10816  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 10817  ReadFieldError:
 10818  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceNoBodyStructMethodArgs[fieldId]), err)
 10819  SkipFieldError:
 10820  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 10821  ReadFieldEndError:
 10822  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 10823  ReadStructEndError:
 10824  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 10825  }
 10826  
 10827  func (p *ExampleServiceNoBodyStructMethodArgs) FastReadField1(buf []byte) (int, error) {
 10828  	offset := 0
 10829  	p.Req = NewExampleNoBodyStruct()
 10830  	if l, err := p.Req.FastRead(buf[offset:]); err != nil {
 10831  		return offset, err
 10832  	} else {
 10833  		offset += l
 10834  	}
 10835  	return offset, nil
 10836  }
 10837  
 10838  // for compatibility
 10839  func (p *ExampleServiceNoBodyStructMethodArgs) FastWrite(buf []byte) int {
 10840  	return 0
 10841  }
 10842  
 10843  func (p *ExampleServiceNoBodyStructMethodArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10844  	offset := 0
 10845  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "NoBodyStructMethod_args")
 10846  	if p != nil {
 10847  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
 10848  	}
 10849  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 10850  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 10851  	return offset
 10852  }
 10853  
 10854  func (p *ExampleServiceNoBodyStructMethodArgs) BLength() int {
 10855  	l := 0
 10856  	l += bthrift.Binary.StructBeginLength("NoBodyStructMethod_args")
 10857  	if p != nil {
 10858  		l += p.field1Length()
 10859  	}
 10860  	l += bthrift.Binary.FieldStopLength()
 10861  	l += bthrift.Binary.StructEndLength()
 10862  	return l
 10863  }
 10864  
 10865  func (p *ExampleServiceNoBodyStructMethodArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10866  	offset := 0
 10867  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRUCT, 1)
 10868  	offset += p.Req.FastWriteNocopy(buf[offset:], binaryWriter)
 10869  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 10870  	return offset
 10871  }
 10872  
 10873  func (p *ExampleServiceNoBodyStructMethodArgs) field1Length() int {
 10874  	l := 0
 10875  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRUCT, 1)
 10876  	l += p.Req.BLength()
 10877  	l += bthrift.Binary.FieldEndLength()
 10878  	return l
 10879  }
 10880  
 10881  func (p *ExampleServiceNoBodyStructMethodResult) FastRead(buf []byte) (int, error) {
 10882  	var err error
 10883  	var offset int
 10884  	var l int
 10885  	var fieldTypeId thrift.TType
 10886  	var fieldId int16
 10887  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 10888  	offset += l
 10889  	if err != nil {
 10890  		goto ReadStructBeginError
 10891  	}
 10892  
 10893  	for {
 10894  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 10895  		offset += l
 10896  		if err != nil {
 10897  			goto ReadFieldBeginError
 10898  		}
 10899  		if fieldTypeId == thrift.STOP {
 10900  			break
 10901  		}
 10902  		switch fieldId {
 10903  		case 0:
 10904  			if fieldTypeId == thrift.STRUCT {
 10905  				l, err = p.FastReadField0(buf[offset:])
 10906  				offset += l
 10907  				if err != nil {
 10908  					goto ReadFieldError
 10909  				}
 10910  			} else {
 10911  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10912  				offset += l
 10913  				if err != nil {
 10914  					goto SkipFieldError
 10915  				}
 10916  			}
 10917  		default:
 10918  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 10919  			offset += l
 10920  			if err != nil {
 10921  				goto SkipFieldError
 10922  			}
 10923  		}
 10924  
 10925  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 10926  		offset += l
 10927  		if err != nil {
 10928  			goto ReadFieldEndError
 10929  		}
 10930  	}
 10931  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 10932  	offset += l
 10933  	if err != nil {
 10934  		goto ReadStructEndError
 10935  	}
 10936  
 10937  	return offset, nil
 10938  ReadStructBeginError:
 10939  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 10940  ReadFieldBeginError:
 10941  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 10942  ReadFieldError:
 10943  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceNoBodyStructMethodResult[fieldId]), err)
 10944  SkipFieldError:
 10945  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 10946  ReadFieldEndError:
 10947  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 10948  ReadStructEndError:
 10949  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 10950  }
 10951  
 10952  func (p *ExampleServiceNoBodyStructMethodResult) FastReadField0(buf []byte) (int, error) {
 10953  	offset := 0
 10954  	p.Success = NewExampleNoBodyStruct()
 10955  	if l, err := p.Success.FastRead(buf[offset:]); err != nil {
 10956  		return offset, err
 10957  	} else {
 10958  		offset += l
 10959  	}
 10960  	return offset, nil
 10961  }
 10962  
 10963  // for compatibility
 10964  func (p *ExampleServiceNoBodyStructMethodResult) FastWrite(buf []byte) int {
 10965  	return 0
 10966  }
 10967  
 10968  func (p *ExampleServiceNoBodyStructMethodResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10969  	offset := 0
 10970  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "NoBodyStructMethod_result")
 10971  	if p != nil {
 10972  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
 10973  	}
 10974  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 10975  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 10976  	return offset
 10977  }
 10978  
 10979  func (p *ExampleServiceNoBodyStructMethodResult) BLength() int {
 10980  	l := 0
 10981  	l += bthrift.Binary.StructBeginLength("NoBodyStructMethod_result")
 10982  	if p != nil {
 10983  		l += p.field0Length()
 10984  	}
 10985  	l += bthrift.Binary.FieldStopLength()
 10986  	l += bthrift.Binary.StructEndLength()
 10987  	return l
 10988  }
 10989  
 10990  func (p *ExampleServiceNoBodyStructMethodResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 10991  	offset := 0
 10992  	if p.IsSetSuccess() {
 10993  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRUCT, 0)
 10994  		offset += p.Success.FastWriteNocopy(buf[offset:], binaryWriter)
 10995  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 10996  	}
 10997  	return offset
 10998  }
 10999  
 11000  func (p *ExampleServiceNoBodyStructMethodResult) field0Length() int {
 11001  	l := 0
 11002  	if p.IsSetSuccess() {
 11003  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRUCT, 0)
 11004  		l += p.Success.BLength()
 11005  		l += bthrift.Binary.FieldEndLength()
 11006  	}
 11007  	return l
 11008  }
 11009  
 11010  func (p *ExampleServiceStringArgs) FastRead(buf []byte) (int, error) {
 11011  	var err error
 11012  	var offset int
 11013  	var l int
 11014  	var fieldTypeId thrift.TType
 11015  	var fieldId int16
 11016  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 11017  	offset += l
 11018  	if err != nil {
 11019  		goto ReadStructBeginError
 11020  	}
 11021  
 11022  	for {
 11023  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 11024  		offset += l
 11025  		if err != nil {
 11026  			goto ReadFieldBeginError
 11027  		}
 11028  		if fieldTypeId == thrift.STOP {
 11029  			break
 11030  		}
 11031  		switch fieldId {
 11032  		case 1:
 11033  			if fieldTypeId == thrift.STRING {
 11034  				l, err = p.FastReadField1(buf[offset:])
 11035  				offset += l
 11036  				if err != nil {
 11037  					goto ReadFieldError
 11038  				}
 11039  			} else {
 11040  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 11041  				offset += l
 11042  				if err != nil {
 11043  					goto SkipFieldError
 11044  				}
 11045  			}
 11046  		default:
 11047  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 11048  			offset += l
 11049  			if err != nil {
 11050  				goto SkipFieldError
 11051  			}
 11052  		}
 11053  
 11054  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 11055  		offset += l
 11056  		if err != nil {
 11057  			goto ReadFieldEndError
 11058  		}
 11059  	}
 11060  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 11061  	offset += l
 11062  	if err != nil {
 11063  		goto ReadStructEndError
 11064  	}
 11065  
 11066  	return offset, nil
 11067  ReadStructBeginError:
 11068  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 11069  ReadFieldBeginError:
 11070  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 11071  ReadFieldError:
 11072  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceStringArgs[fieldId]), err)
 11073  SkipFieldError:
 11074  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 11075  ReadFieldEndError:
 11076  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 11077  ReadStructEndError:
 11078  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 11079  }
 11080  
 11081  func (p *ExampleServiceStringArgs) FastReadField1(buf []byte) (int, error) {
 11082  	offset := 0
 11083  
 11084  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
 11085  		return offset, err
 11086  	} else {
 11087  		offset += l
 11088  
 11089  		p.Req = v
 11090  
 11091  	}
 11092  	return offset, nil
 11093  }
 11094  
 11095  // for compatibility
 11096  func (p *ExampleServiceStringArgs) FastWrite(buf []byte) int {
 11097  	return 0
 11098  }
 11099  
 11100  func (p *ExampleServiceStringArgs) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 11101  	offset := 0
 11102  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "String_args")
 11103  	if p != nil {
 11104  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
 11105  	}
 11106  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 11107  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 11108  	return offset
 11109  }
 11110  
 11111  func (p *ExampleServiceStringArgs) BLength() int {
 11112  	l := 0
 11113  	l += bthrift.Binary.StructBeginLength("String_args")
 11114  	if p != nil {
 11115  		l += p.field1Length()
 11116  	}
 11117  	l += bthrift.Binary.FieldStopLength()
 11118  	l += bthrift.Binary.StructEndLength()
 11119  	return l
 11120  }
 11121  
 11122  func (p *ExampleServiceStringArgs) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 11123  	offset := 0
 11124  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.STRING, 1)
 11125  	offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, p.Req)
 11126  
 11127  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 11128  	return offset
 11129  }
 11130  
 11131  func (p *ExampleServiceStringArgs) field1Length() int {
 11132  	l := 0
 11133  	l += bthrift.Binary.FieldBeginLength("req", thrift.STRING, 1)
 11134  	l += bthrift.Binary.StringLengthNocopy(p.Req)
 11135  
 11136  	l += bthrift.Binary.FieldEndLength()
 11137  	return l
 11138  }
 11139  
 11140  func (p *ExampleServiceStringResult) FastRead(buf []byte) (int, error) {
 11141  	var err error
 11142  	var offset int
 11143  	var l int
 11144  	var fieldTypeId thrift.TType
 11145  	var fieldId int16
 11146  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 11147  	offset += l
 11148  	if err != nil {
 11149  		goto ReadStructBeginError
 11150  	}
 11151  
 11152  	for {
 11153  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 11154  		offset += l
 11155  		if err != nil {
 11156  			goto ReadFieldBeginError
 11157  		}
 11158  		if fieldTypeId == thrift.STOP {
 11159  			break
 11160  		}
 11161  		switch fieldId {
 11162  		case 0:
 11163  			if fieldTypeId == thrift.STRING {
 11164  				l, err = p.FastReadField0(buf[offset:])
 11165  				offset += l
 11166  				if err != nil {
 11167  					goto ReadFieldError
 11168  				}
 11169  			} else {
 11170  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 11171  				offset += l
 11172  				if err != nil {
 11173  					goto SkipFieldError
 11174  				}
 11175  			}
 11176  		default:
 11177  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 11178  			offset += l
 11179  			if err != nil {
 11180  				goto SkipFieldError
 11181  			}
 11182  		}
 11183  
 11184  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 11185  		offset += l
 11186  		if err != nil {
 11187  			goto ReadFieldEndError
 11188  		}
 11189  	}
 11190  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 11191  	offset += l
 11192  	if err != nil {
 11193  		goto ReadStructEndError
 11194  	}
 11195  
 11196  	return offset, nil
 11197  ReadStructBeginError:
 11198  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 11199  ReadFieldBeginError:
 11200  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 11201  ReadFieldError:
 11202  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceStringResult[fieldId]), err)
 11203  SkipFieldError:
 11204  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 11205  ReadFieldEndError:
 11206  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 11207  ReadStructEndError:
 11208  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 11209  }
 11210  
 11211  func (p *ExampleServiceStringResult) FastReadField0(buf []byte) (int, error) {
 11212  	offset := 0
 11213  
 11214  	if v, l, err := bthrift.Binary.ReadString(buf[offset:]); err != nil {
 11215  		return offset, err
 11216  	} else {
 11217  		offset += l
 11218  		p.Success = &v
 11219  
 11220  	}
 11221  	return offset, nil
 11222  }
 11223  
 11224  // for compatibility
 11225  func (p *ExampleServiceStringResult) FastWrite(buf []byte) int {
 11226  	return 0
 11227  }
 11228  
 11229  func (p *ExampleServiceStringResult) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 11230  	offset := 0
 11231  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "String_result")
 11232  	if p != nil {
 11233  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
 11234  	}
 11235  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 11236  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 11237  	return offset
 11238  }
 11239  
 11240  func (p *ExampleServiceStringResult) BLength() int {
 11241  	l := 0
 11242  	l += bthrift.Binary.StructBeginLength("String_result")
 11243  	if p != nil {
 11244  		l += p.field0Length()
 11245  	}
 11246  	l += bthrift.Binary.FieldStopLength()
 11247  	l += bthrift.Binary.StructEndLength()
 11248  	return l
 11249  }
 11250  
 11251  func (p *ExampleServiceStringResult) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 11252  	offset := 0
 11253  	if p.IsSetSuccess() {
 11254  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.STRING, 0)
 11255  		offset += bthrift.Binary.WriteStringNocopy(buf[offset:], binaryWriter, *p.Success)
 11256  
 11257  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 11258  	}
 11259  	return offset
 11260  }
 11261  
 11262  func (p *ExampleServiceStringResult) field0Length() int {
 11263  	l := 0
 11264  	if p.IsSetSuccess() {
 11265  		l += bthrift.Binary.FieldBeginLength("success", thrift.STRING, 0)
 11266  		l += bthrift.Binary.StringLengthNocopy(*p.Success)
 11267  
 11268  		l += bthrift.Binary.FieldEndLength()
 11269  	}
 11270  	return l
 11271  }
 11272  
 11273  func (p *ExampleServiceI64Args) FastRead(buf []byte) (int, error) {
 11274  	var err error
 11275  	var offset int
 11276  	var l int
 11277  	var fieldTypeId thrift.TType
 11278  	var fieldId int16
 11279  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 11280  	offset += l
 11281  	if err != nil {
 11282  		goto ReadStructBeginError
 11283  	}
 11284  
 11285  	for {
 11286  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 11287  		offset += l
 11288  		if err != nil {
 11289  			goto ReadFieldBeginError
 11290  		}
 11291  		if fieldTypeId == thrift.STOP {
 11292  			break
 11293  		}
 11294  		switch fieldId {
 11295  		case 1:
 11296  			if fieldTypeId == thrift.I64 {
 11297  				l, err = p.FastReadField1(buf[offset:])
 11298  				offset += l
 11299  				if err != nil {
 11300  					goto ReadFieldError
 11301  				}
 11302  			} else {
 11303  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 11304  				offset += l
 11305  				if err != nil {
 11306  					goto SkipFieldError
 11307  				}
 11308  			}
 11309  		default:
 11310  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 11311  			offset += l
 11312  			if err != nil {
 11313  				goto SkipFieldError
 11314  			}
 11315  		}
 11316  
 11317  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 11318  		offset += l
 11319  		if err != nil {
 11320  			goto ReadFieldEndError
 11321  		}
 11322  	}
 11323  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 11324  	offset += l
 11325  	if err != nil {
 11326  		goto ReadStructEndError
 11327  	}
 11328  
 11329  	return offset, nil
 11330  ReadStructBeginError:
 11331  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 11332  ReadFieldBeginError:
 11333  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 11334  ReadFieldError:
 11335  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceI64Args[fieldId]), err)
 11336  SkipFieldError:
 11337  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 11338  ReadFieldEndError:
 11339  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 11340  ReadStructEndError:
 11341  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 11342  }
 11343  
 11344  func (p *ExampleServiceI64Args) FastReadField1(buf []byte) (int, error) {
 11345  	offset := 0
 11346  
 11347  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
 11348  		return offset, err
 11349  	} else {
 11350  		offset += l
 11351  
 11352  		p.Req = v
 11353  
 11354  	}
 11355  	return offset, nil
 11356  }
 11357  
 11358  // for compatibility
 11359  func (p *ExampleServiceI64Args) FastWrite(buf []byte) int {
 11360  	return 0
 11361  }
 11362  
 11363  func (p *ExampleServiceI64Args) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 11364  	offset := 0
 11365  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "I64_args")
 11366  	if p != nil {
 11367  		offset += p.fastWriteField1(buf[offset:], binaryWriter)
 11368  	}
 11369  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 11370  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 11371  	return offset
 11372  }
 11373  
 11374  func (p *ExampleServiceI64Args) BLength() int {
 11375  	l := 0
 11376  	l += bthrift.Binary.StructBeginLength("I64_args")
 11377  	if p != nil {
 11378  		l += p.field1Length()
 11379  	}
 11380  	l += bthrift.Binary.FieldStopLength()
 11381  	l += bthrift.Binary.StructEndLength()
 11382  	return l
 11383  }
 11384  
 11385  func (p *ExampleServiceI64Args) fastWriteField1(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 11386  	offset := 0
 11387  	offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "req", thrift.I64, 1)
 11388  	offset += bthrift.Binary.WriteI64(buf[offset:], p.Req)
 11389  
 11390  	offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 11391  	return offset
 11392  }
 11393  
 11394  func (p *ExampleServiceI64Args) field1Length() int {
 11395  	l := 0
 11396  	l += bthrift.Binary.FieldBeginLength("req", thrift.I64, 1)
 11397  	l += bthrift.Binary.I64Length(p.Req)
 11398  
 11399  	l += bthrift.Binary.FieldEndLength()
 11400  	return l
 11401  }
 11402  
 11403  func (p *ExampleServiceI64Result) FastRead(buf []byte) (int, error) {
 11404  	var err error
 11405  	var offset int
 11406  	var l int
 11407  	var fieldTypeId thrift.TType
 11408  	var fieldId int16
 11409  	_, l, err = bthrift.Binary.ReadStructBegin(buf)
 11410  	offset += l
 11411  	if err != nil {
 11412  		goto ReadStructBeginError
 11413  	}
 11414  
 11415  	for {
 11416  		_, fieldTypeId, fieldId, l, err = bthrift.Binary.ReadFieldBegin(buf[offset:])
 11417  		offset += l
 11418  		if err != nil {
 11419  			goto ReadFieldBeginError
 11420  		}
 11421  		if fieldTypeId == thrift.STOP {
 11422  			break
 11423  		}
 11424  		switch fieldId {
 11425  		case 0:
 11426  			if fieldTypeId == thrift.I64 {
 11427  				l, err = p.FastReadField0(buf[offset:])
 11428  				offset += l
 11429  				if err != nil {
 11430  					goto ReadFieldError
 11431  				}
 11432  			} else {
 11433  				l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 11434  				offset += l
 11435  				if err != nil {
 11436  					goto SkipFieldError
 11437  				}
 11438  			}
 11439  		default:
 11440  			l, err = bthrift.Binary.Skip(buf[offset:], fieldTypeId)
 11441  			offset += l
 11442  			if err != nil {
 11443  				goto SkipFieldError
 11444  			}
 11445  		}
 11446  
 11447  		l, err = bthrift.Binary.ReadFieldEnd(buf[offset:])
 11448  		offset += l
 11449  		if err != nil {
 11450  			goto ReadFieldEndError
 11451  		}
 11452  	}
 11453  	l, err = bthrift.Binary.ReadStructEnd(buf[offset:])
 11454  	offset += l
 11455  	if err != nil {
 11456  		goto ReadStructEndError
 11457  	}
 11458  
 11459  	return offset, nil
 11460  ReadStructBeginError:
 11461  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct begin error: ", p), err)
 11462  ReadFieldBeginError:
 11463  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d begin error: ", p, fieldId), err)
 11464  ReadFieldError:
 11465  	return offset, thrift.PrependError(fmt.Sprintf("%T read field %d '%s' error: ", p, fieldId, fieldIDToName_ExampleServiceI64Result[fieldId]), err)
 11466  SkipFieldError:
 11467  	return offset, thrift.PrependError(fmt.Sprintf("%T field %d skip type %d error: ", p, fieldId, fieldTypeId), err)
 11468  ReadFieldEndError:
 11469  	return offset, thrift.PrependError(fmt.Sprintf("%T read field end error", p), err)
 11470  ReadStructEndError:
 11471  	return offset, thrift.PrependError(fmt.Sprintf("%T read struct end error: ", p), err)
 11472  }
 11473  
 11474  func (p *ExampleServiceI64Result) FastReadField0(buf []byte) (int, error) {
 11475  	offset := 0
 11476  
 11477  	if v, l, err := bthrift.Binary.ReadI64(buf[offset:]); err != nil {
 11478  		return offset, err
 11479  	} else {
 11480  		offset += l
 11481  		p.Success = &v
 11482  
 11483  	}
 11484  	return offset, nil
 11485  }
 11486  
 11487  // for compatibility
 11488  func (p *ExampleServiceI64Result) FastWrite(buf []byte) int {
 11489  	return 0
 11490  }
 11491  
 11492  func (p *ExampleServiceI64Result) FastWriteNocopy(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 11493  	offset := 0
 11494  	offset += bthrift.Binary.WriteStructBegin(buf[offset:], "I64_result")
 11495  	if p != nil {
 11496  		offset += p.fastWriteField0(buf[offset:], binaryWriter)
 11497  	}
 11498  	offset += bthrift.Binary.WriteFieldStop(buf[offset:])
 11499  	offset += bthrift.Binary.WriteStructEnd(buf[offset:])
 11500  	return offset
 11501  }
 11502  
 11503  func (p *ExampleServiceI64Result) BLength() int {
 11504  	l := 0
 11505  	l += bthrift.Binary.StructBeginLength("I64_result")
 11506  	if p != nil {
 11507  		l += p.field0Length()
 11508  	}
 11509  	l += bthrift.Binary.FieldStopLength()
 11510  	l += bthrift.Binary.StructEndLength()
 11511  	return l
 11512  }
 11513  
 11514  func (p *ExampleServiceI64Result) fastWriteField0(buf []byte, binaryWriter bthrift.BinaryWriter) int {
 11515  	offset := 0
 11516  	if p.IsSetSuccess() {
 11517  		offset += bthrift.Binary.WriteFieldBegin(buf[offset:], "success", thrift.I64, 0)
 11518  		offset += bthrift.Binary.WriteI64(buf[offset:], *p.Success)
 11519  
 11520  		offset += bthrift.Binary.WriteFieldEnd(buf[offset:])
 11521  	}
 11522  	return offset
 11523  }
 11524  
 11525  func (p *ExampleServiceI64Result) field0Length() int {
 11526  	l := 0
 11527  	if p.IsSetSuccess() {
 11528  		l += bthrift.Binary.FieldBeginLength("success", thrift.I64, 0)
 11529  		l += bthrift.Binary.I64Length(*p.Success)
 11530  
 11531  		l += bthrift.Binary.FieldEndLength()
 11532  	}
 11533  	return l
 11534  }
 11535  
 11536  func (p *ExampleServiceExampleMethodArgs) GetFirstArgument() interface{} {
 11537  	return p.Req
 11538  }
 11539  
 11540  func (p *ExampleServiceExampleMethodResult) GetResult() interface{} {
 11541  	return p.Success
 11542  }
 11543  
 11544  func (p *ExampleServiceErrorMethodArgs) GetFirstArgument() interface{} {
 11545  	return p.Req
 11546  }
 11547  
 11548  func (p *ExampleServiceErrorMethodResult) GetResult() interface{} {
 11549  	return p.Success
 11550  }
 11551  
 11552  func (p *ExampleServiceInt2FloatMethodArgs) GetFirstArgument() interface{} {
 11553  	return p.Req
 11554  }
 11555  
 11556  func (p *ExampleServiceInt2FloatMethodResult) GetResult() interface{} {
 11557  	return p.Success
 11558  }
 11559  
 11560  func (p *ExampleServiceJSONStringMethodArgs) GetFirstArgument() interface{} {
 11561  	return p.Req
 11562  }
 11563  
 11564  func (p *ExampleServiceJSONStringMethodResult) GetResult() interface{} {
 11565  	return p.Success
 11566  }
 11567  
 11568  func (p *ExampleServicePartialMethodArgs) GetFirstArgument() interface{} {
 11569  	return p.Req
 11570  }
 11571  
 11572  func (p *ExampleServicePartialMethodResult) GetResult() interface{} {
 11573  	return p.Success
 11574  }
 11575  
 11576  func (p *ExampleServiceFallbackMethodArgs) GetFirstArgument() interface{} {
 11577  	return p.Req
 11578  }
 11579  
 11580  func (p *ExampleServiceFallbackMethodResult) GetResult() interface{} {
 11581  	return p.Success
 11582  }
 11583  
 11584  func (p *ExampleServiceApiBodyMethodArgs) GetFirstArgument() interface{} {
 11585  	return p.Req
 11586  }
 11587  
 11588  func (p *ExampleServiceApiBodyMethodResult) GetResult() interface{} {
 11589  	return p.Success
 11590  }
 11591  
 11592  func (p *ExampleServicePostFormMethodArgs) GetFirstArgument() interface{} {
 11593  	return p.Req
 11594  }
 11595  
 11596  func (p *ExampleServicePostFormMethodResult) GetResult() interface{} {
 11597  	return p.Success
 11598  }
 11599  
 11600  func (p *ExampleServiceDynamicStructMethodArgs) GetFirstArgument() interface{} {
 11601  	return p.Req
 11602  }
 11603  
 11604  func (p *ExampleServiceDynamicStructMethodResult) GetResult() interface{} {
 11605  	return p.Success
 11606  }
 11607  
 11608  func (p *ExampleServiceBase64BinaryMethodArgs) GetFirstArgument() interface{} {
 11609  	return p.Req
 11610  }
 11611  
 11612  func (p *ExampleServiceBase64BinaryMethodResult) GetResult() interface{} {
 11613  	return p.Success
 11614  }
 11615  
 11616  func (p *ExampleServiceDefaultValueMethodArgs) GetFirstArgument() interface{} {
 11617  	return p.Req
 11618  }
 11619  
 11620  func (p *ExampleServiceDefaultValueMethodResult) GetResult() interface{} {
 11621  	return p.Success
 11622  }
 11623  
 11624  func (p *ExampleServiceOptionalDefaultValueMethodArgs) GetFirstArgument() interface{} {
 11625  	return p.Req
 11626  }
 11627  
 11628  func (p *ExampleServiceOptionalDefaultValueMethodResult) GetResult() interface{} {
 11629  	return p.Success
 11630  }
 11631  
 11632  func (p *ExampleServiceNoBodyStructMethodArgs) GetFirstArgument() interface{} {
 11633  	return p.Req
 11634  }
 11635  
 11636  func (p *ExampleServiceNoBodyStructMethodResult) GetResult() interface{} {
 11637  	return p.Success
 11638  }
 11639  
 11640  func (p *ExampleServiceStringArgs) GetFirstArgument() interface{} {
 11641  	return p.Req
 11642  }
 11643  
 11644  func (p *ExampleServiceStringResult) GetResult() interface{} {
 11645  	return p.Success
 11646  }
 11647  
 11648  func (p *ExampleServiceI64Args) GetFirstArgument() interface{} {
 11649  	return p.Req
 11650  }
 11651  
 11652  func (p *ExampleServiceI64Result) GetResult() interface{} {
 11653  	return p.Success
 11654  }
 11655  
 11656  func (p *InnerBase) GetOrSetBase() interface{} {
 11657  	if p.Base == nil {
 11658  		p.Base = base.NewBase()
 11659  	}
 11660  	return p.Base
 11661  }
 11662  func (p *ExampleReq) GetOrSetBase() interface{} {
 11663  	if p.Base == nil {
 11664  		p.Base = base.NewBase()
 11665  	}
 11666  	return p.Base
 11667  }
 11668  func (p *InnerBasePartial) GetOrSetBase() interface{} {
 11669  	if p.Base == nil {
 11670  		p.Base = base.NewBase()
 11671  	}
 11672  	return p.Base
 11673  }
 11674  
 11675  func (p *ExampleResp) GetOrSetBaseResp() interface{} {
 11676  	if p.BaseResp == nil {
 11677  		p.BaseResp = base.NewBaseResp()
 11678  	}
 11679  	return p.BaseResp
 11680  }
 11681  func (p *ExamplePartial2) GetOrSetBaseResp() interface{} {
 11682  	if p.BaseResp == nil {
 11683  		p.BaseResp = base.NewBaseResp()
 11684  	}
 11685  	return p.BaseResp
 11686  }