blob: b6bc350a6a36a04a4b9e478e18c1f6b941f2934d [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 "TableDeclaration" -}}
{{- range .Doc }}
///{{ . -}}
{{- end }}
class {{ .Name }} extends $fidl.Table {
const {{ .Name }}({
this.$unknownData,
{{- range .Members }}
this.{{ .Name }}{{ if .DefaultValue }}: {{ .DefaultValue }}{{ end }},
{{- end }}
});
{{ .Name }}._(Map<int, dynamic> argv, this.$unknownData)
{{- if len .Members }}:
{{- range $index, $member := .Members -}}
{{- if $index }},
{{ else }} {{ end -}}
{{ .Name }} = argv[{{ .Ordinal }}]
{{- end }}{{- end }};
{{ .Name }} $cloneWith({
$fidl.OptionalNullable<Map<int, $fidl.UnknownRawData>> $unknownData =
const $fidl.OptionalNullable.undefined(),
{{- range .Members }}
$fidl.OptionalNullable<{{ .Type.Decl }}> {{ .Name }} =
const $fidl.OptionalNullable.undefined(),
{{- end }}
}) {
return {{ .Name }}(
{{- range .Members }}
{{ .Name }}: {{ .Name }}.or(this.{{ .Name }}),
{{- end }}
);
}
@override
final Map<int, $fidl.UnknownRawData>? $unknownData;
{{- range .Members }}
{{- range .Doc }}
///{{ . -}}
{{- end }}
final {{ .Type.OptionalDecl }} {{ .Name }};
{{- end }}
@override
dynamic $field(int index) {
switch (index) {
{{- range .Members }}
case {{ .Index }}:
return {{ .Name }};
{{- end }}
}
return null;
}
@override
Map<int, dynamic> get $fields {
return {
{{- range .Members }}
{{ .Ordinal }}: {{ .Name }},
{{- end }}
};
}
static {{ .Name }} _ctor(Map<int, dynamic> argv,
[Map<int, $fidl.UnknownRawData>? unknownData]) =>
{{ .Name }}._(argv, unknownData);
}
// See fxbug.dev/7644:
// ignore: recursive_compile_time_constant
const $fidl.TableType<{{ .Name }}> {{ .TypeSymbol }} = {{ .TypeExpr }};
{{ end }}