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