{{/*
// 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 "Method:WireWeakOnewayClientImpl:WireMessagingHeader" }}
  {{ .Docs }}
  {{- if .DocComments }}
    //
  {{- end }}
  // {{- template "Method:ClientAllocationComment:Helper" . }}
  ::fidl::Status {{ .Name }}({{ RenderParams .RequestArgs }});
{{- end }}


{{- define "Method:WireWeakOnewayClientImpl:WireMessagingSource" }}
  ::fidl::Status {{ .Protocol.WireWeakOnewayClientImpl.NoLeading }}::{{ .Name }}(
        {{- RenderParams .RequestArgs }}) {
    FIDL_INTERNAL_DISABLE_AUTO_VAR_INIT
    {{ .WireTransactionalRequest }} _request_object{ {{ RenderForwardParams .RequestArgs }} };
    ::fidl::unstable::OwnedEncodedMessage<{{ .WireTransactionalRequest }}, {{ .Transport.Type }}> _request_message(
        ::fidl::internal::AllowUnownedInputRef{}, &_request_object);
    return _client_base()->SendOneWay(_request_message.GetOutgoingMessage());
  }
{{- end }}
