Files
mautrix-telegram/pkg/gotd/gen/_template/fill_from.tmpl
T
2025-06-27 20:03:37 -07:00

21 lines
809 B
Cheetah

{{ define "fill_from" }}{{ $s := . }}{{ if $s.Fields }}
{{- /*gotype: go.mau.fi/mautrix-telegram/pkg/gotd/gen.structDef*/ -}}
// FillFrom fills {{ $s.Name }} from given interface.
func ({{ $s.Receiver }} *{{ $s.Name }}) FillFrom(from interface{
{{- range $f := $s.Fields }}{{ if ne ($f.Type) ("bin.Fields") }}
{{ template "getter_func_type" $f }}
{{- end }}{{- end }}
}) {
{{- range $f := $s.Fields }}{{ if ne ($f.Type) ("bin.Fields") }}
{{- /*gotype: go.mau.fi/mautrix-telegram/pkg/gotd/gen.fieldDef*/ -}}
{{- if and ($f.Conditional) (not $f.ConditionalBool) }}
if val, ok := from.Get{{ $f.Name }}(); ok {
{{ $s.Receiver }}.{{ $f.Name }} = val
}
{{ else }}
{{ $s.Receiver }}.{{ $f.Name }} = from.Get{{ $f.Name }}()
{{- end }}
{{- end }}{{- end }}
}
{{ end }}{{ end }}