template update

This commit is contained in:
Egor Aristov 2025-10-23 10:19:07 +03:00
parent 1e29c54030
commit c7652ac4ba
Signed by: egor3f
GPG Key ID: 40482A264AAEC85F
2 changed files with 19 additions and 6 deletions

View File

@ -14,14 +14,16 @@ type {{.Name}} struct {
} }
{{range $mtd := .Methods}} {{range $mtd := .Methods}}
func ({{$e.Name | receiver}} *{{$e.Name}}) {{$mtd.Name}} ( func ({{$e.Name | receiver}} *{{$e.Name}}) {{$mtd.Name}}(
{{range $mtd.Params}}{{.Name}} {{.Type | typedef}}, {{end}} {{- 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( results, err := {{$e.Name | receiver}}.Ipc.Call("{{$mtd.Name}}"{{range $mtd.Params}}, {{.Name}}{{end}})
"{{$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}} {{end}}

View File

@ -40,6 +40,17 @@ func (g *GoApiGenerator) Generate(api *Api, destFile string) error {
} }
return td, nil 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")) tpl = template.Must(tpl.ParseFiles("./go_gen.tmpl"))