【特性】新增 proto go实现,有待完善。
parent
b0d64bb967
commit
28626d0cfd
|
|
@ -0,0 +1,14 @@
|
|||
using Luban.Job.Common.Generate;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Luban.Job.Proto.Generate
|
||||
{
|
||||
[Render("go")]
|
||||
class GoRender : TemplateRenderBase
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
@ -18,7 +18,6 @@ namespace Luban.Job.Proto.Generate
|
|||
{
|
||||
var template = StringTemplateUtil.GetTemplate($"common/{RenderTemplateDir}/enum");
|
||||
var result = template.Render(e);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -26,7 +25,6 @@ namespace Luban.Job.Proto.Generate
|
|||
{
|
||||
var template = StringTemplateUtil.GetTemplate($"proto/{RenderTemplateDir}/bean");
|
||||
var result = template.RenderCode(b);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -34,7 +32,6 @@ namespace Luban.Job.Proto.Generate
|
|||
{
|
||||
var template = StringTemplateUtil.GetTemplate($"proto/{RenderTemplateDir}/proto");
|
||||
var result = template.RenderCode(p);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -42,7 +39,6 @@ namespace Luban.Job.Proto.Generate
|
|||
{
|
||||
var template = StringTemplateUtil.GetTemplate($"proto/{RenderTemplateDir}/rpc");
|
||||
var result = template.RenderCode(r);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -251,6 +251,18 @@
|
|||
<None Update="Templates\proto\cs\stub.tpl">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="Templates\proto\go\bean.tpl">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="Templates\proto\go\proto.tpl">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="Templates\proto\go\rpc.tpl">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="Templates\proto\go\stub.tpl">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="Templates\proto\lua\all.tpl">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
{{-
|
||||
go_full_name = x.go_full_name
|
||||
parent_def_type = x.parent_def_type
|
||||
is_abstract_type = x.is_abstract_type
|
||||
export_fields = x.export_fields
|
||||
hierarchy_not_abstract_children = x.hierarchy_not_abstract_children
|
||||
-}}
|
||||
|
||||
package {{x.top_module}}
|
||||
|
||||
import (
|
||||
"bright/serialization"
|
||||
)
|
||||
|
||||
{{x.go_bin_import}}
|
||||
|
||||
type {{go_full_name}} struct {
|
||||
{{~if parent_def_type~}}
|
||||
{{parent_def_type.go_full_name}}
|
||||
{{~end~}}
|
||||
{{~for field in export_fields ~}}
|
||||
{{field.convention_name}} {{go_define_type field.ctype}}
|
||||
{{~end~}}
|
||||
}
|
||||
|
||||
{{~if !is_abstract_type~}}
|
||||
func ({{go_full_name}}) GetTypeId() int {
|
||||
return {{x.id}}
|
||||
}
|
||||
{{~end~}}
|
||||
|
||||
{{~if is_abstract_type~}}
|
||||
func New{{go_full_name}}(_buf *serialization.ByteBuf) (_v interface{}, err error) {
|
||||
var id int32
|
||||
if id, err = _buf.ReadInt() ; err != nil {
|
||||
return
|
||||
}
|
||||
switch id {
|
||||
{{~for child in hierarchy_not_abstract_children~}}
|
||||
case {{child.id}}: return New{{child.go_full_name}}(_buf)
|
||||
{{~end~}}
|
||||
default: return nil, errors.New("unknown type id")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func New{{go_full_name}}_Body(_buf *serialization.ByteBuf) (_v *{{go_full_name}}, err error) {
|
||||
_v = &{{go_full_name}}{}
|
||||
{{~if parent_def_type~}}
|
||||
var _p *{{parent_def_type.go_full_name}}
|
||||
if _p, err = New{{parent_def_type.go_full_name}}_Body(_buf) ; err != nil { return }
|
||||
_v.{{parent_def_type.go_full_name}} = *_p
|
||||
{{~end~}}
|
||||
{{~for field in export_fields ~}}
|
||||
{{go_deserialize_field field.ctype ("_v." + field.convention_name) '_buf'}}
|
||||
{{~end~}}
|
||||
return
|
||||
}
|
||||
|
||||
{{~else~}}
|
||||
func New{{go_full_name}}(_buf *serialization.ByteBuf) (_v *{{go_full_name}}, err error) {
|
||||
_v = &{{go_full_name}}{}
|
||||
{{~if parent_def_type~}}
|
||||
var _p *{{parent_def_type.go_full_name}}
|
||||
if _p, err = New{{parent_def_type.go_full_name}}_Body(_buf) ; err != nil { return }
|
||||
_v.{{parent_def_type.go_full_name}} = *_p
|
||||
{{~end~}}
|
||||
{{~for field in export_fields ~}}
|
||||
{{go_deserialize_field field.ctype ("_v." + field.convention_name) '_buf'}}
|
||||
{{~end~}}
|
||||
return
|
||||
}
|
||||
{{~end~}}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
{{-
|
||||
go_full_name = x.go_full_name
|
||||
parent_def_type = x.parent_def_type
|
||||
is_abstract_type = x.is_abstract_type
|
||||
export_fields = x.export_fields
|
||||
hierarchy_not_abstract_children = x.hierarchy_not_abstract_children
|
||||
-}}
|
||||
|
||||
package {{x.top_module}}
|
||||
|
||||
import (
|
||||
"bright/serialization"
|
||||
)
|
||||
|
||||
{{x.go_bin_import}}
|
||||
|
||||
type {{go_full_name}} struct {
|
||||
{{~if parent_def_type~}}
|
||||
{{parent_def_type.go_full_name}}
|
||||
{{~end~}}
|
||||
{{~for field in export_fields ~}}
|
||||
{{field.convention_name}} {{go_define_type field.ctype}}
|
||||
{{~end~}}
|
||||
}
|
||||
|
||||
{{~if !is_abstract_type~}}
|
||||
func ({{go_full_name}}) GetTypeId() int {
|
||||
return {{x.id}}
|
||||
}
|
||||
{{~end~}}
|
||||
|
||||
{{~if is_abstract_type~}}
|
||||
func New{{go_full_name}}(_buf *serialization.ByteBuf) (_v interface{}, err error) {
|
||||
var id int32
|
||||
if id, err = _buf.ReadInt() ; err != nil {
|
||||
return
|
||||
}
|
||||
switch id {
|
||||
{{~for child in hierarchy_not_abstract_children~}}
|
||||
case {{child.id}}: return New{{child.go_full_name}}(_buf)
|
||||
{{~end~}}
|
||||
default: return nil, errors.New("unknown type id")
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func New{{go_full_name}}_Body(_buf *serialization.ByteBuf) (_v *{{go_full_name}}, err error) {
|
||||
_v = &{{go_full_name}}{}
|
||||
{{~if parent_def_type~}}
|
||||
var _p *{{parent_def_type.go_full_name}}
|
||||
if _p, err = New{{parent_def_type.go_full_name}}_Body(_buf) ; err != nil { return }
|
||||
_v.{{parent_def_type.go_full_name}} = *_p
|
||||
{{~end~}}
|
||||
{{~for field in export_fields ~}}
|
||||
{{go_deserialize_field field.ctype ("_v." + field.convention_name) '_buf'}}
|
||||
{{~end~}}
|
||||
return
|
||||
}
|
||||
|
||||
{{~else~}}
|
||||
func New{{go_full_name}}(_buf *serialization.ByteBuf) (_v *{{go_full_name}}, err error) {
|
||||
_v = &{{go_full_name}}{}
|
||||
{{~if parent_def_type~}}
|
||||
var _p *{{parent_def_type.go_full_name}}
|
||||
if _p, err = New{{parent_def_type.go_full_name}}_Body(_buf) ; err != nil { return }
|
||||
_v.{{parent_def_type.go_full_name}} = *_p
|
||||
{{~end~}}
|
||||
{{~for field in export_fields ~}}
|
||||
{{go_deserialize_field field.ctype ("_v." + field.convention_name) '_buf'}}
|
||||
{{~end~}}
|
||||
return
|
||||
}
|
||||
{{~end~}}
|
||||
|
|
@ -0,0 +1 @@
|
|||
// rpc {{x.full_name}}
|
||||
|
|
@ -0,0 +1 @@
|
|||
// stub
|
||||
Loading…
Reference in New Issue