117 lines
3.2 KiB
Plaintext
117 lines
3.2 KiB
Plaintext
|
{{~if ___top_module != ''~}}
|
||
|
package {{__top_module}};
|
||
|
{{~end~}}
|
||
|
|
||
|
{{~
|
||
|
go_full_name = full_name __this
|
||
|
key_type = __this.key_ttype
|
||
|
value_type = __this.value_ttype
|
||
|
index_field = __this.index_field
|
||
|
~}}
|
||
|
|
||
|
import "{{__luban_module_name}}"
|
||
|
|
||
|
{{~if __this.is_map_table~}}
|
||
|
type {{go_full_name}} struct {
|
||
|
_dataMap map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}}
|
||
|
_dataList []{{declaring_type_name value_type}}
|
||
|
}
|
||
|
|
||
|
func New{{go_full_name}}(_buf *luban.ByteBuf) (*{{go_full_name}}, error) {
|
||
|
if size, err := _buf.ReadSize() ; err != nil {
|
||
|
return nil, err
|
||
|
} else {
|
||
|
_dataList := make([]{{declaring_type_name value_type}}, 0, size)
|
||
|
dataMap := make(map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}})
|
||
|
|
||
|
for i := 0 ; i < size ; i++ {
|
||
|
if _v, err2 := New{{full_name value_type.def_bean}}(_buf); err2 != nil {
|
||
|
return nil, err2
|
||
|
} else {
|
||
|
_dataList = append(_dataList, _v)
|
||
|
{{~if value_type.is_dynamic ~}}
|
||
|
{{~for child in value_type.def_bean.hierarchy_not_abstract_children~}}
|
||
|
if __v, __is := _v.(*{{full_name child}}) ; __is {
|
||
|
dataMap[__v.{{format_field_name __code_style index_field.name}}] = _v
|
||
|
continue
|
||
|
}
|
||
|
{{~end~}}
|
||
|
{{~else~}}
|
||
|
dataMap[_v.{{format_field_name __code_style index_field.name}}] = _v
|
||
|
{{~end~}}
|
||
|
}
|
||
|
}
|
||
|
return &{{go_full_name}}{_dataList:_dataList, _dataMap:dataMap}, nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (table *{{go_full_name}}) GetDataMap() map[{{declaring_type_name key_type}}]{{declaring_type_name value_type}} {
|
||
|
return table._dataMap
|
||
|
}
|
||
|
|
||
|
func (table *{{go_full_name}}) GetDataList() []{{declaring_type_name value_type}} {
|
||
|
return table._dataList
|
||
|
}
|
||
|
|
||
|
func (table *{{go_full_name}}) Get(key {{declaring_type_name key_type}}) {{declaring_type_name value_type}} {
|
||
|
return table._dataMap[key]
|
||
|
}
|
||
|
|
||
|
{{~else if __this.is_list_table~}}
|
||
|
type {{go_full_name}} struct {
|
||
|
_dataList []{{declaring_type_name value_type}}
|
||
|
}
|
||
|
|
||
|
func New{{go_full_name}}(_buf *luban.ByteBuf) (*{{go_full_name}}, error) {
|
||
|
if size, err := _buf.ReadSize() ; err != nil {
|
||
|
return nil, err
|
||
|
} else {
|
||
|
_dataList := make([]{{declaring_type_name value_type}}, 0, size)
|
||
|
|
||
|
for i := 0 ; i < size ; i++ {
|
||
|
if _v, err2 := New{{full_name value_type.def_bean}}(_buf); err2 != nil {
|
||
|
return nil, err2
|
||
|
} else {
|
||
|
_dataList = append(_dataList, _v)
|
||
|
}
|
||
|
}
|
||
|
return &{{go_full_name}}{_dataList:_dataList}, nil
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (table *{{go_full_name}}) GetDataList() []{{declaring_type_name value_type}} {
|
||
|
return table._dataList
|
||
|
}
|
||
|
|
||
|
func (table *{{go_full_name}}) Get(index int) {{declaring_type_name value_type}} {
|
||
|
return table._dataList[index]
|
||
|
}
|
||
|
|
||
|
{{~else~}}
|
||
|
|
||
|
import "errors"
|
||
|
|
||
|
type {{go_full_name}} struct {
|
||
|
_data {{declaring_type_name value_type}}
|
||
|
}
|
||
|
|
||
|
func New{{go_full_name}}(_buf *luban.ByteBuf) (*{{go_full_name}}, error) {
|
||
|
if size, err := _buf.ReadSize() ; err != nil {
|
||
|
return nil, err
|
||
|
} else if size != 1 {
|
||
|
return nil, errors.New(" size != 1 ")
|
||
|
} else {
|
||
|
if _v, err2 := New{{full_name value_type.def_bean}}(_buf); err2 != nil {
|
||
|
return nil, err2
|
||
|
} else {
|
||
|
return &{{go_full_name}}{_data:_v}, nil
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (table *{{go_full_name}}) Get() {{declaring_type_name value_type}} {
|
||
|
return table._data
|
||
|
}
|
||
|
|
||
|
{{~end~}}
|