kittenipc/kitcom/golang/gogen.tmpl

35 lines
866 B
Cheetah

{{- /*gotype: efprojects.com/kitten-ipc/kitcom.goGenData*/ -}}
// Code generated by kitcom. DO NOT EDIT.
package {{.PkgName}}
import (
"fmt"
kittenipc "efprojects.com/kitten-ipc"
)
{{range $e := .Api.Endpoints}}
type {{.Name}} struct {
Ipc kittenipc.Callable
}
{{range $mtd := $e.Methods}}
func ({{$e.Name | receiver}} *{{$e.Name}}) {{$mtd.Name}}(
{{range $mtd.Params}}{{.Name}} {{.Type | typedef}}, {{end}}
) (
{{range $mtd.Ret}}{{.Type | typedef}}, {{end}}error,
) {
results, err := {{$e.Name | receiver}}.Ipc.Call("{{$e.Name}}.{{$mtd.Name}}"{{range $mtd.Params}}, {{.Name}}{{end}})
if err != nil {
return {{range $mtd.Ret}}{{.Type | zerovalue}}, {{end}} fmt.Errorf("call to {{$e.Name}}.{{$mtd.Name}} failed: %w", err)
}
_ = results
return {{range $idx, $ret := $mtd.Ret}}results[{{$idx}}].({{$ret.Type | typedef}}), {{end}}nil
}
{{end}}
{{end}}