blob: c5183fb4d5bbc78e20eef2e181d842cdfe9370de [file] [log] [blame]
{{/*
// Copyright 2021 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 "Filename:TypesHeader" -}}
fidl/{{ .LibraryDots }}/cpp/wire_types.h
{{- end }}
{{- define "File:TypesHeader" -}}
{{- UseWire -}}
// WARNING: This file is machine generated by fidlgen.
#pragma once
#include <cinttypes>
#include <lib/fidl/llcpp/array.h>
#include <lib/fidl/llcpp/coding.h>
#include <lib/fidl/llcpp/envelope.h>
#include <lib/fidl/llcpp/message_storage.h>
#include <lib/fidl/llcpp/message.h>
#include <lib/fidl/llcpp/object_view.h>
#include <lib/fidl/llcpp/string_view.h>
#include <lib/fidl/llcpp/traits.h>
#include <lib/fidl/llcpp/wire_types.h>
#include <lib/stdcompat/optional.h>
{{- IfdefFuchsia -}}
{{ range .HandleTypes -}}
#include <lib/zx/{{ . }}.h>
{{ end -}}
{{- EndifFuchsia }}
#include <{{ .Library | Filename "Markers" }}>
{{ range .Dependencies -}}
#include <{{ . | Filename "TypesHeader" }}>
{{ end }}
{{ range .Bits }}{{ template "Bits:ForwardDeclaration:TypesHeader" . }}{{ end }}
{{ range .Enums }}{{ template "Enum:ForwardDeclaration:TypesHeader" . }}{{ end }}
{{ range .Structs | SkipRequestResponseDecls }}{{ template "Struct:ForwardDeclaration:TypesHeader" . }}{{ end }}
{{ range .Tables | SkipRequestResponseDecls }}{{ template "Table:ForwardDeclaration:TypesHeader" . }}{{ end }}
{{ range .Unions | SkipRequestResponseDecls }}{{ template "Union:ForwardDeclaration:TypesHeader" . }}{{ end }}
{{- /* Resolve inline object declaration order by defining small inline structs first
(size <= 4 so can't contain a table or a union), then tables and unions, then
the remaining types. */}}
{{- range .Structs | SkipRequestResponseDecls }}
{{ if le .TypeShapeV2.InlineSize 4 }}{{ template "Struct:TypesHeader" . }}{{ end }}
{{- end }}
{{ range .Tables | SkipRequestResponseDecls }}{{ template "Table:TypesHeader" . }}{{ end }}
{{ range .Unions | SkipRequestResponseDecls }}{{ template "Union:TypesHeader" . }}{{ end }}
{{ range .Consts }}{{ template "Const:TypesHeader" . }}{{ end }}
{{ range .Structs | SkipRequestResponseDecls }}
{{ if gt .TypeShapeV2.InlineSize 4 }}{{ template "Struct:TypesHeader" . }}{{ end }}
{{- end }}
{{ EnsureNamespace "fidl" }}
{{ range .Bits }}{{ template "Bits:Traits:TypesHeader" . }}{{ end }}
{{ range .Structs | SkipRequestResponseDecls }}{{ template "Struct:Traits:TypesHeader" . }}{{ end }}
{{ range .Tables | SkipRequestResponseDecls }}{{ template "Table:Traits:TypesHeader" . }}{{ end }}
{{ range .Unions | SkipRequestResponseDecls }}{{ template "Union:Traits:TypesHeader" . }}{{ end }}
{{ range .Enums }}{{ template "Enum:Traits:TypesHeader" . }}{{ end }}
{{ EndOfFile }}
{{ end }}