47 lines
1.5 KiB
Cheetah
47 lines
1.5 KiB
Cheetah
{{- /*gotype: efprojects.com/kitten-ipc/kitcom/internal/golang.goGenData*/ -}}
|
|
|
|
// Code generated by kitcom. DO NOT EDIT.
|
|
|
|
package {{ .PkgName }}
|
|
|
|
import (
|
|
"fmt"
|
|
kittenipc "efprojects.com/kitten-ipc"
|
|
"encoding/base64"
|
|
)
|
|
|
|
var _ = base64.StdEncoding
|
|
|
|
{{ range $e := .Api.Endpoints }}
|
|
|
|
type {{ .Name }} struct {
|
|
Ipc kittenipc.IpcCommon
|
|
}
|
|
|
|
{{ 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)
|
|
}
|
|
if len(results) < {{ len $mtd.Ret }} {
|
|
return {{ range $mtd.Ret }}{{ .Type | zerovalue }}, {{ end }} fmt.Errorf("call to {{ $e.Name }}.{{ $mtd.Name }}: expected {{ len $mtd.Ret }} results, got %d", len(results))
|
|
}
|
|
{{ range $i, $ret := $mtd.Ret }}
|
|
{{ if eq $ret.Type "blob" }}
|
|
results[{{ $i }}], err = base64.StdEncoding.DecodeString(results[{{ $i }}].(string))
|
|
if err != nil {
|
|
return {{ range $mtd.Ret }}{{ .Type | zerovalue }}, {{ end }} fmt.Errorf("call to {{ $e.Name }}.{{ $mtd.Name }}: error decoding blob: %w", err)
|
|
}
|
|
{{ end }}
|
|
{{ end }}
|
|
return {{ range $idx, $ret := $mtd.Ret }}{{ convtype ( printf "results[%d]" $idx ) $ret.Type }}, {{ end }}nil
|
|
}
|
|
{{ end }}
|
|
|
|
{{ end }}
|