//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

package cfg;


import (
    "demo/luban"
)

import "errors"

type TestTestRef struct {
    Id int32
    X1 int32
    X12 int32
    X2 int32
    X3 int32
    X4 int32
    A1 []int32
    A2 []int32
    B1 []int32
    B2 []int32
    C1 []int32
    C2 []int32
    D1 map[int32]int32
    D2 map[int32]int32
    E1 int32
    E2 int64
    E3 string
    F1 int32
    F2 int64
    F3 string
    S1 interface{}
}

const TypeId_TestTestRef = -543222491

func (*TestTestRef) GetTypeId() int32 {
    return -543222491
}

func NewTestTestRef(_buf *luban.ByteBuf) (_v *TestTestRef, err error) {
    _v = &TestTestRef{}
    { if _v.Id, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }
    { if _v.X1, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }
    { if _v.X12, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }
    { if _v.X2, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }
    { if _v.X3, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }
    { if _v.X4, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }
    {_v.A1 = make([]int32, 0); var _n_ int; if _n_, err = _buf.ReadSize(); err != nil { err = errors.New("error"); return}; for i := 0 ; i < _n_ ; i++ { var _e_ int32; { if _e_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; _v.A1 = append(_v.A1, _e_) } }
    {_v.A2 = make([]int32, 0); var _n_ int; if _n_, err = _buf.ReadSize(); err != nil { err = errors.New("error"); return}; for i := 0 ; i < _n_ ; i++ { var _e_ int32; { if _e_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; _v.A2 = append(_v.A2, _e_) } }
    {_v.B1 = make([]int32, 0); var _n_ int; if _n_, err = _buf.ReadSize(); err != nil { err = errors.New("error"); return}; for i := 0 ; i < _n_ ; i++ { var _e_ int32; { if _e_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; _v.B1 = append(_v.B1, _e_) } }
    {_v.B2 = make([]int32, 0); var _n_ int; if _n_, err = _buf.ReadSize(); err != nil { err = errors.New("error"); return}; for i := 0 ; i < _n_ ; i++ { var _e_ int32; { if _e_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; _v.B2 = append(_v.B2, _e_) } }
    {_v.C1 = make([]int32, 0); var _n_ int; if _n_, err = _buf.ReadSize(); err != nil { err = errors.New("error"); return}; for i := 0 ; i < _n_ ; i++ { var _e_ int32; { if _e_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; _v.C1 = append(_v.C1, _e_) } }
    {_v.C2 = make([]int32, 0); var _n_ int; if _n_, err = _buf.ReadSize(); err != nil { err = errors.New("error"); return}; for i := 0 ; i < _n_ ; i++ { var _e_ int32; { if _e_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; _v.C2 = append(_v.C2, _e_) } }
    { _v.D1 = make(map[int32]int32); var _n_ int; if _n_, err = _buf.ReadSize(); err != nil { err = errors.New("error"); return}; for i := 0 ; i < _n_ ; i++ { var _key_ int32; { if _key_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; var _value_ int32; { if _value_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; _v.D1[_key_] = _value_} }
    { _v.D2 = make(map[int32]int32); var _n_ int; if _n_, err = _buf.ReadSize(); err != nil { err = errors.New("error"); return}; for i := 0 ; i < _n_ ; i++ { var _key_ int32; { if _key_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; var _value_ int32; { if _value_, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }; _v.D2[_key_] = _value_} }
    { if _v.E1, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }
    { if _v.E2, err = _buf.ReadLong(); err != nil { err = errors.New("error"); return } }
    { if _v.E3, err = _buf.ReadString(); err != nil { err = errors.New("error"); return } }
    { if _v.F1, err = _buf.ReadInt(); err != nil { err = errors.New("error"); return } }
    { if _v.F2, err = _buf.ReadLong(); err != nil { err = errors.New("error"); return } }
    { if _v.F3, err = _buf.ReadString(); err != nil { err = errors.New("error"); return } }
    { if _v.S1, err = NewTestRefDynamicBase(_buf); err != nil { err = errors.New("error"); return } }
    return
}