| {{/* |
| // 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 }} |
| } |
| |
| {{- 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 -}} |
| |