| {{/* |
| // 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 "Method:Types:WireMessagingHeader" }} |
| {{ IfdefFuchsia }} |
| |
| {{ EnsureNamespace "" }} |
| template<> |
| struct {{ .WireMethodTypes }} { |
| using Completer = fidl::Completer<{{ .WireCompleterBase }}>; |
| |
| {{ if .Result }} |
| using ApplicationError = {{ .Result.ErrorDecl }}; |
| {{ end }} |
| |
| using Thenable = ::fidl::internal::WireThenableImpl< |
| {{ .Marker }}, |
| ::fidl::unstable::OwnedEncodedMessage< |
| {{ .WireTransactionalRequest }}, {{ .Transport.Type }} |
| > |
| >; |
| |
| using BufferThenable = ::fidl::internal::WireThenableImpl< |
| {{ .Marker }}, |
| ::fidl::unstable::UnownedEncodedMessage< |
| {{ .WireTransactionalRequest }}, {{ .Transport.Type }} |
| > |
| >; |
| }; |
| |
| {{ EndifFuchsia }} |
| {{- end }} |
| |
| |
| |
| {{- define "Method:Types:NaturalMessagingHeader" }} |
| |
| {{ EnsureNamespace "" }} |
| template<> |
| struct {{ .NaturalMethodTypes }} { |
| using Completer = fidl::Completer<{{ .NaturalCompleterBase }}>; |
| |
| using ResultCallback = |
| ::fit::callback<void ({{ .NaturalResult }}&)>; |
| |
| {{ if .Result }} |
| static constexpr bool HasApplicationError = true; |
| {{ if .Result.ValueParameters }} |
| static constexpr bool IsEmptyStructPayload = false; |
| {{ else }} |
| static constexpr bool IsEmptyStructPayload = true; |
| {{ end }} |
| {{ else }} |
| static constexpr bool HasApplicationError = false; |
| {{ end }} |
| |
| {{ if .ResponseArgs }} |
| static constexpr bool IsAbsentBody = false; |
| {{ else }} |
| static constexpr bool IsAbsentBody = true; |
| {{ end }} |
| }; |
| |
| {{- end }} |