From 8913abc4002d1932f4caaefa72eb597295afde1e Mon Sep 17 00:00:00 2001 From: Martin Chang Date: Wed, 1 Dec 2021 08:40:09 +0800 Subject: [PATCH] Mark all awaiters as nodiscard (#1098) --- lib/inc/drogon/WebSocketClient.h | 3 ++- lib/inc/drogon/utils/coroutine.h | 2 +- nosql_lib/redis/inc/drogon/nosql/RedisClient.h | 4 ++-- orm_lib/inc/drogon/orm/CoroMapper.h | 2 +- orm_lib/inc/drogon/orm/DbClient.h | 4 ++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/inc/drogon/WebSocketClient.h b/lib/inc/drogon/WebSocketClient.h index e3fa97b8..f50cba42 100644 --- a/lib/inc/drogon/WebSocketClient.h +++ b/lib/inc/drogon/WebSocketClient.h @@ -36,7 +36,8 @@ using WebSocketRequestCallback = std::function< #ifdef __cpp_impl_coroutine namespace internal { -struct WebSocketConnectionAwaiter : public CallbackAwaiter +struct [[nodiscard]] WebSocketConnectionAwaiter + : public CallbackAwaiter { WebSocketConnectionAwaiter(WebSocketClient *client, HttpRequestPtr req) : client_(client), req_(std::move(req)) diff --git a/lib/inc/drogon/utils/coroutine.h b/lib/inc/drogon/utils/coroutine.h index b631e0c7..378dbfd6 100644 --- a/lib/inc/drogon/utils/coroutine.h +++ b/lib/inc/drogon/utils/coroutine.h @@ -648,7 +648,7 @@ inline auto co_future(Await &&await) noexcept namespace internal { -struct TimerAwaiter : CallbackAwaiter +struct [[nodiscard]] TimerAwaiter : CallbackAwaiter { TimerAwaiter(trantor::EventLoop *loop, const std::chrono::duration &delay) diff --git a/nosql_lib/redis/inc/drogon/nosql/RedisClient.h b/nosql_lib/redis/inc/drogon/nosql/RedisClient.h index 9bdbdfbf..2f63fb38 100644 --- a/nosql_lib/redis/inc/drogon/nosql/RedisClient.h +++ b/nosql_lib/redis/inc/drogon/nosql/RedisClient.h @@ -34,7 +34,7 @@ class RedisClient; class RedisTransaction; namespace internal { -struct RedisAwaiter : public CallbackAwaiter +struct [[nodiscard]] RedisAwaiter : public CallbackAwaiter { using RedisFunction = std::function; @@ -60,7 +60,7 @@ struct RedisAwaiter : public CallbackAwaiter RedisFunction function_; }; -struct RedisTransactionAwaiter +struct [[nodiscard]] RedisTransactionAwaiter : public CallbackAwaiter > { RedisTransactionAwaiter(RedisClient *client) : client_(client) diff --git a/orm_lib/inc/drogon/orm/CoroMapper.h b/orm_lib/inc/drogon/orm/CoroMapper.h index 4ab48bac..f6c4ad77 100644 --- a/orm_lib/inc/drogon/orm/CoroMapper.h +++ b/orm_lib/inc/drogon/orm/CoroMapper.h @@ -23,7 +23,7 @@ namespace orm namespace internal { template -struct MapperAwaiter : public CallbackAwaiter +struct [[nodiscard]] MapperAwaiter : public CallbackAwaiter { using MapperFunction = std::function &&, diff --git a/orm_lib/inc/drogon/orm/DbClient.h b/orm_lib/inc/drogon/orm/DbClient.h index 9d731af5..492debda 100644 --- a/orm_lib/inc/drogon/orm/DbClient.h +++ b/orm_lib/inc/drogon/orm/DbClient.h @@ -46,7 +46,7 @@ class DbClient; namespace internal { #ifdef __cpp_impl_coroutine -struct SqlAwaiter : public CallbackAwaiter +struct [[nodiscard]] SqlAwaiter : public CallbackAwaiter { SqlAwaiter(internal::SqlBinder &&binder) : binder_(std::move(binder)) { @@ -69,7 +69,7 @@ struct SqlAwaiter : public CallbackAwaiter internal::SqlBinder binder_; }; -struct TransactionAwaiter +struct [[nodiscard]] TransactionAwaiter : public CallbackAwaiter > { TransactionAwaiter(DbClient *client) : client_(client)