blob: 28f1caf68e27f896f877cb2dee0eae3a2446c1b4 [file] [log] [blame]
{{/*
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
*/}}
{{- define "TableDefinition" -}}
{{range .DocComments}}
//{{ . }}
{{- end}}
type {{ .Name }} struct {
_ struct{} `{{ .Tags }}`
I_unknownData interface{}
{{- range .Members }}
{{- range .DocComments}}
//{{ . }}
{{- end}}
{{ .DataField }} {{ .Type }} `{{ .Tags }}`
{{ .PresenceField }} bool
{{- end }}
}
var _m{{ .Name }} = _bindings.CreateLazyMarshaler({{ .Name }}{})
func (msg *{{ .Name }}) Marshaler() _bindings.Marshaler {
return _m{{ .Name }}
}
{{- range .Members }}
func (u *{{ $.Name }}) {{ .Setter }}({{ .PrivateDataField }} {{ .Type }}) {
u.{{ .DataField }} = {{ .PrivateDataField }}
u.{{ .PresenceField }} = true
}
func (u *{{ $.Name }}) {{ .Getter }}() {{ .Type }} {
return u.{{ .DataField }}
}
func (u *{{ $.Name }}) {{ .GetterWithDefault }}(_default {{ .Type }}) {{ .Type }} {
if !u.{{ .Haser }}() {
return _default
}
return u.{{ .DataField }}
}
func (u *{{ $.Name }}) {{ .Haser }}() bool {
return u.{{ .PresenceField }}
}
func (u *{{ $.Name }}) {{ .Clearer }}() {
u.{{ .PresenceField }} = false
}
{{- end }}
func (u *{{ .Name }}) HasUnknownData() bool {
return u.I_unknownData != nil
}
func (u *{{ .Name }}) GetUnknownData() map[uint64]{{ .UnknownDataType }} {
return u.I_unknownData.(map[uint64]{{ .UnknownDataType }})
}
{{- end -}}