{{/*
// Copyright 2022 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:TypeConversionsSource" -}}
fidl/{{ .LibraryDots }}/cpp/type_conversions.cc
{{- end }}

{{- define "File:TypeConversionsSource" -}}
// WARNING: This file is machine generated by fidlgen.

#include <{{ .Library | Filename "TypeConversionsHeader" }}>

{{ EnsureNamespace "fidl::internal" }}
{{ range .Structs }}{{ template "Struct:Traits:TypeConversionsSource" . }}{{ end }}
{{ range .Tables }}{{ template "Table:Traits:TypeConversionsSource" . }}{{ end }}
{{ range .Unions }}{{ template "Union:Traits:TypeConversionsSource" . }}{{ end }}

{{ IfdefFuchsia -}}
{{- range .Decls }}
{{- if Eq .Kind Kinds.Protocol }}{{ $protocol := . }}
{{- range $transport, $_ := .Transports }}
{{- if eq $transport "Channel" -}}

{{- range $protocol.ClientMethods }}
{{ template "Method:Request:Traits:TypeConversionsSource" . }}
{{- end }}

{{- range $protocol.TwoWayMethods }}
{{ template "Method:Response:Traits:TypeConversionsSource" . }}
{{- end }}

{{- range $protocol.Events }}
{{ template "Method:Event:Traits:TypeConversionsSource" . }}
{{- end }}

{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- EndifFuchsia -}}

{{- EndOfFile }}
{{ end }}
