blob: 2823e4c102b271b8f0df37ec6b50d8c950ab9c7d [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:WireTypesHeader" -}}
fidl/{{ .LibraryDots }}/cpp/wire_types.h
{{- end }}
{{- define "File:WireTypesHeader" -}}
{{- 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 <{{ . }}>
{{ end -}}
{{ if .ContainsDriverReferences -}}
#include <lib/fidl_driver/cpp/wire_types.h>
{{ end -}}
{{- EndifFuchsia }}
#include <{{ .Library | Filename "Markers" }}>
#include <{{ .Library | Filename "CommonTypesHeader" }}>
{{ range .Dependencies -}}
#include <{{ . | Filename "WireTypesHeader" }}>
{{ end }}
{{ range .Bits }}{{ template "Bits:WireTypesHeader" . }}{{ end }}
{{ range .Enums }}{{ template "Enum:WireTypesHeader" . }}{{ end }}
{{ range .Structs }}{{ template "Struct:ForwardDeclaration:WireTypesHeader" . }}{{ end }}
{{ range .Tables }}{{ template "Table:ForwardDeclaration:WireTypesHeader" . }}{{ end }}
{{ range .Unions }}{{ template "Union:ForwardDeclaration:WireTypesHeader" . }}{{ 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 }}
{{ if le .TypeShapeV2.InlineSize 4 }}{{ template "Struct:WireTypesHeader" . }}{{ end }}
{{- end }}
{{ range .Tables }}{{ template "Table:WireTypesHeader" . }}{{ end }}
{{ range .Unions }}{{ template "Union:WireTypesHeader" . }}{{ end }}
{{ range .Consts }}{{ template "Const:WireTypesHeader" . }}{{ end }}
{{ range .Structs }}
{{ if gt .TypeShapeV2.InlineSize 4 }}{{ template "Struct:WireTypesHeader" . }}{{ end }}
{{- end }}
{{ EnsureNamespace "fidl" }}
{{ range .Structs }}{{ template "Struct:Traits:WireTypesHeader" . }}{{ end }}
{{ range .Tables }}{{ template "Table:Traits:WireTypesHeader" . }}{{ end }}
{{ range .Unions }}{{ template "Union:Traits:WireTypesHeader" . }}{{ end }}
{{ EndOfFile }}
{{ end }}