{{- /*gotype: go.mau.fi/mautrix-telegram/pkg/gotd/gen.structDef*/ -}} {{ define "method" }}{{- $s := . -}}{{ if $s.Method }} // {{ $s.Method }} invokes method {{ $s.RawType }} returning error if any. {{- if $s.Docs }} {{- range $d := $s.Docs }} // {{ trim $d }} {{- end }} {{- end }} {{- if $s.Links }} {{- template "print_links" $s.Links }} {{- end }} {{- if $s.Errors }} {{- template "print_errors" $s.Errors }} {{- end }} {{- if $s.URL }} // // See {{ $s.URL }} for reference. {{- end }} {{- if $s.BotCanUse }} // Can be used by bots. {{- end }} {{- if $s.Result }} {{- if $s.ResultSingular }} func (c *Client) {{ $s.Method }}({{ template "request_params" $s }}) ({{ if not $s.ResultVector }}*{{ $s.Result }}{{ else }}{{ template "slice_result_name" $s }}{{ end }}, error) { var result {{ $s.Result }} {{ template "pack_request" $s }} if err := c.rpc.Invoke(ctx, request, &result); err != nil { return nil, err } {{- if $s.ResultVector }} return {{ template "slice_result_name" $s }}(result.Elems), nil {{- else }} return &result, nil {{- end }} } {{- else }} func (c *Client) {{ $s.Method }}({{ template "request_params" $s }}) ({{if ne $s.Result "BoolClass"}}{{ $s.Result }}{{ else }}bool{{ end }}, error) { var result {{ $s.ResultFunc }}Box {{ template "pack_request" $s }} if err := c.rpc.Invoke(ctx, request, &result); err != nil { {{- if ne $s.Result "BoolClass" }}return nil, err{{- else }}return false, err{{- end }} } {{- if ne $s.Result "BoolClass" }} return result.{{ $s.ResultBaseName }}, nil {{- else }} _, ok := result.{{ $s.ResultBaseName }}.(*BoolTrue) return ok, nil {{- end }} } {{- end }} {{- else }} func (c *Client) {{ $s.Method }}({{ template "request_params" $s }}) error { var ok Ok {{ template "pack_request" $s }} if err := c.rpc.Invoke(ctx, request, &ok); err != nil { return err } return nil } {{- end }} {{ end }}{{ end }}