blob: 3d292bcff8969650eaa07a3e619e7f23e3d3fe06 [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" -}}
{{- $table := . }}
{{ range $comment := .DocComments }}
//{{ $comment }}
{{- end }}
type {{ $table.Name }} struct {
_ struct{} `{{ $table.Tags }}`
I_unknownData interface{}
{{- range $memb := $table.Members }}
{{- range $comment := $memb.DocComments }}
//{{ $comment }}
{{- end }}
{{ $memb.DataField }} {{ $memb.Type }} `{{ $memb.Tags }}`
{{ $memb.PresenceField }} bool
{{- end }}
}
var _m{{ $table.Name }} = _bindings.CreateLazyMarshaler({{ $table.Name }}{})
func (msg *{{ $table.Name }}) Marshaler() _bindings.Marshaler {
return _m{{ $table.Name }}
}
{{ range $memb := .Members }}
func (u *{{ $table.Name }}) {{ $memb.Setter }}({{ $memb.PrivateDataField }} {{ $memb.Type }}) {
u.{{ $memb.DataField }} = {{ $memb.PrivateDataField }}
u.{{ $memb.PresenceField }} = true
}
func (u *{{ $table.Name }}) {{ $memb.Getter }}() {{ $memb.Type }} {
return u.{{ $memb.DataField }}
}
func (u *{{ $table.Name }}) {{ $memb.GetterWithDefault }}(_default {{ $memb.Type }}) {{ $memb.Type }} {
if !u.{{ $memb.Haser }}() {
return _default
}
return u.{{ $memb.DataField }}
}
func (u *{{ $table.Name }}) {{ $memb.Haser }}() bool {
return u.{{ $memb.PresenceField }}
}
func (u *{{ $table.Name }}) {{ $memb.Clearer }}() {
u.{{ $memb.PresenceField }} = false
}
{{ end }}
func (u *{{ $table.Name }}) HasUnknownData() bool {
return u.I_unknownData != nil
}
func (u *{{ $table.Name }}) GetUnknownData() map[uint64]{{ $table.UnknownDataType }} {
return u.I_unknownData.(map[uint64]{{ $table.UnknownDataType }})
}
{{- end -}}