1folly::Promise<{{#function:return_type}}{{> clients/cpp_return_type}}{{/function:return_type}}> _promise;
2auto _future = _promise.getFuture();
3{{^function:oneway?}}
4auto callback = std::make_unique<::thrift::py3::FutureCallback<{{#function:return_type}}{{> clients/cpp_return_type}}{{/function:return_type}}>>(
5  std::move(_promise), rpcOptions, client->recv_wrapped_{{function:cppName}}, channel_);
6{{/function:oneway?}}
7{{#function:oneway?}}
8{{! oneway functions have no recv they are special cased}}
9auto callback = std::make_unique<::apache::thrift::OneWayFutureCallback>(
10  std::move(_promise), channel_);
11{{/function:oneway?}}
12client->{{function:cppName}}(
13  rpcOptions,
14  std::move(callback){{#function:args}},
15  arg_{{field:py_name}}{{/function:args}}
16);
17return _future;
18