template update
This commit is contained in:
parent
1e29c54030
commit
c7652ac4ba
@ -14,14 +14,16 @@ type {{.Name}} struct {
|
||||
}
|
||||
|
||||
{{range $mtd := .Methods}}
|
||||
func ({{$e.Name | receiver}} *{{$e.Name}}) {{$mtd.Name}} (
|
||||
{{range $mtd.Params}}{{.Name}} {{.Type | typedef}}, {{end}}
|
||||
func ({{$e.Name | receiver}} *{{$e.Name}}) {{$mtd.Name}}(
|
||||
{{- range $mtd.Params}}{{.Name}} {{.Type | typedef}}, {{end -}}
|
||||
) (
|
||||
{{range $mtd.Ret}}{{.Type | typedef}}, {{end}}
|
||||
{{- range $mtd.Ret}}{{.Type | typedef}}, {{end -}}
|
||||
) {
|
||||
return {{$e.Name | receiver}}.Ipc.Call(
|
||||
"{{$mtd.Name}}", {{range $mtd.Params}}{{.Name}}, {{end}}
|
||||
)
|
||||
results, err := {{$e.Name | receiver}}.Ipc.Call("{{$mtd.Name}}"{{range $mtd.Params}}, {{.Name}}{{end}})
|
||||
if err != nil {
|
||||
return {{range $idx, $ret := $mtd.Ret}}{{zerovalue $ret.Type}}, {{end}}, fmt.Errorf("call to {{$e.Name}}.{{$mtd.Name}} failed: %w", err)
|
||||
}
|
||||
return {{range $idx, $ret := $mtd.Ret}}results[{{$idx}}].({{$ret.Type | typedef}}), {{end}}
|
||||
}
|
||||
{{end}}
|
||||
|
||||
|
||||
@ -40,6 +40,17 @@ func (g *GoApiGenerator) Generate(api *Api, destFile string) error {
|
||||
}
|
||||
return td, nil
|
||||
},
|
||||
"zerovalue": func(t ValType) (string, error) {
|
||||
v, ok := map[ValType]string{
|
||||
TInt: "0",
|
||||
TString: `""`,
|
||||
TBool: "false",
|
||||
}[t]
|
||||
if !ok {
|
||||
return "", fmt.Errorf("cannot generate zero value for type %v", t)
|
||||
}
|
||||
return v, nil
|
||||
},
|
||||
})
|
||||
tpl = template.Must(tpl.ParseFiles("./go_gen.tmpl"))
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user