7a04f298d2
- update to latest telegram layer - remove some references to fields in tg.Entities that don't exist in the schema - originally added here: https://github.com/beeper/td/commit/820929062a2ba0104397bc01235ab58a9cff780e - referenced here - https://github.com/mautrix/telegramgo/commit/124f0967ed195b5a380c9bd02e170ada9710dde3 - https://github.com/mautrix/telegramgo/commit/4205047aab2e0639217148b5d125bfaab668bd8e
57 lines
2.0 KiB
Cheetah
57 lines
2.0 KiB
Cheetah
{{- /*gotype: go.mau.fi/mautrix-telegram/pkg/gotd/gen.interfaceDef*/ -}}
|
|
{{ define "interface_mapping" }}{{ $f := . }}
|
|
{{ range $mapping := $f.Mappings -}}
|
|
|
|
{{- if not ($mapping.Concrete) }}
|
|
// {{ $mapping.Name }} represents {{ $mapping.MapperName }} subset of {{ $f.Name }}.
|
|
type {{ $mapping.Name }} interface {
|
|
{{ template "class_interface_header" $f }}
|
|
|
|
{{ range $field := index ($f.SharedFields) ($mapping.MapperName) -}}{{- /*gotype: go.mau.fi/mautrix-telegram/pkg/gotd/gen.fieldDef*/ -}}
|
|
{{- template "print_comment" $field.Comment }}
|
|
{{- if $field.Links }}
|
|
{{- template "print_links" $field.Links }}
|
|
{{- end }}
|
|
{{ template "getter_func_type" $field}}
|
|
{{ end }}
|
|
}
|
|
{{- end }}
|
|
|
|
{{ range $s := $f.Constructors -}}{{- if or (not $mapping.Constructor) (eq ($s.Name) ($mapping.Constructor)) }}
|
|
// As{{ $mapping.MapperName }} tries to map {{ $s.Name }} to {{ $mapping.Name }}.
|
|
func ({{ $s.Receiver }} *{{ $s.Name }}) {{ template "mapper_func_type" $mapping }} {
|
|
{{- if not ($mapping.Concrete) }}
|
|
value, ok := ({{ $f.Name }}({{ $s.Receiver }})).({{ $mapping.Name }})
|
|
return value, ok
|
|
{{- else }}{{- if $mapping.Fields }}
|
|
value := new({{ $mapping.Name }})
|
|
{{- range $pair := $mapping.Fields -}}
|
|
{{- if and ($pair.L.Conditional) (not $pair.L.ConditionalBool) }}
|
|
if fieldValue, ok := {{ $s.Receiver }}.Get{{ $pair.L.Name }}(); ok {
|
|
{{- if $pair.R.Conditional }}
|
|
value.Set{{ $pair.R.Name }}(fieldValue)
|
|
{{- else }}
|
|
value.{{ $pair.R.Name }} = fieldValue
|
|
{{- end }}
|
|
}
|
|
{{ else }}
|
|
{{- if $pair.R.Conditional -}}
|
|
value.Set{{ $pair.R.Name }}({{ $s.Receiver }}.Get{{ $pair.L.Name }}())
|
|
{{- else }}
|
|
value.{{ $pair.R.Name }} = {{ $s.Receiver }}.Get{{ $pair.L.Name }}()
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
return value
|
|
{{- else }}
|
|
{{- if eq ($s.Name) ($mapping.Name) }} return {{ $s.Receiver }}, true
|
|
{{- else }} return nil, false {{ end }}
|
|
{{- end }}{{- end }}
|
|
}
|
|
{{ end }}{{ end }}
|
|
|
|
{{ end }}
|
|
{{ end }}
|
|
|