Go to the documentation of this file.
15 #ifndef GRPC_CORE_LIB_PROMISE_MAP_H
16 #define GRPC_CORE_LIB_PROMISE_MAP_H
23 #include <type_traits>
26 #include "absl/types/variant.h"
33 namespace promise_detail {
38 template <
typename Promise,
typename Fn>
50 if (
auto* p = absl::get_if<kPollReadyIdx>(&
r)) {
66 template <
typename Promise,
typename Fn>
72 template <
size_t kElem>
74 template <
typename...
A>
76 -> decltype(std::get<kElem>(
std::forward<std::tuple<A...>>(t))) {
77 return std::get<kElem>(
std::forward<std::tuple<A...>>(t));
79 template <
typename...
A>
81 -> decltype(std::get<kElem>(t)) {
82 return std::get<kElem>(t);
88 #endif // GRPC_CORE_LIB_PROMISE_MAP_H
auto operator()(const std::tuple< A... > &t) const -> decltype(std::get< kElem >(t))
auto operator()(std::tuple< A... > &&t) const -> decltype(std::get< kElem >(std::forward< std::tuple< A... >>(t)))
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
Map(Promise promise, Fn fn)
Poll< Result > operator()()
typename PromiseLike< Promise >::Result PromiseResult
std::function< Poll< T >()> Promise
absl::remove_cv_t< absl::remove_reference_t< T > > RemoveCVRef
promise_detail::Map< Promise, Fn > Map(Promise promise, Fn fn)
PromiseLike< Promise > promise_
constexpr T && forward(absl::remove_reference_t< T > &t) noexcept
RemoveCVRef< decltype(std::declval< Fn >()(std::declval< PromiseResult >()))> Result
grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:18