From 605a3af4b2580bc6d811add7a8a1ac2ddfc1acf9 Mon Sep 17 00:00:00 2001 From: levlam Date: Sat, 21 Oct 2023 20:41:31 +0300 Subject: [PATCH] Add and use td::any_of. --- td/mtproto/SessionConnection.cpp | 3 +-- td/telegram/ContactsManager.cpp | 3 +-- td/telegram/MessagesManager.cpp | 6 ++---- td/telegram/StoryManager.cpp | 7 ++----- td/telegram/net/DcOptionsSet.cpp | 6 +++--- tdutils/td/utils/algorithm.h | 10 ++++++++++ tdutils/test/ChainScheduler.cpp | 2 +- 7 files changed, 20 insertions(+), 17 deletions(-) diff --git a/td/mtproto/SessionConnection.cpp b/td/mtproto/SessionConnection.cpp index 7043ba437..a73eaf53f 100644 --- a/td/mtproto/SessionConnection.cpp +++ b/td/mtproto/SessionConnection.cpp @@ -996,8 +996,7 @@ void SessionConnection::flush_packet() { auto to_ack = cut_tail(to_ack_message_ids_, 8192, "ack"); MessageId ping_message_id; - bool use_quick_ack = - std::any_of(queries.begin(), queries.end(), [](const auto &query) { return query.use_quick_ack; }); + bool use_quick_ack = any_of(queries, [](const auto &query) { return query.use_quick_ack; }); { // LOG(ERROR) << (auth_data_->get_header().empty() ? '-' : '+'); diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index e840c7e68..56591d813 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -9311,8 +9311,7 @@ void ContactsManager::get_created_public_dialogs(PublicDialogType type, } return channel_id; }); - if (std::any_of(r_channel_ids.begin(), r_channel_ids.end(), - [](auto &r_channel_id) { return r_channel_id.is_error(); })) { + if (any_of(r_channel_ids, [](const auto &r_channel_id) { return r_channel_id.is_error(); })) { LOG(ERROR) << "Can't parse " << str; G()->td_db()->get_binlog_pmc()->erase(pmc_key); } else { diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 3b44b91dd..9ccd3c8ea 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -13553,8 +13553,7 @@ void MessagesManager::init() { } return dialog_id; }); - if (std::any_of(r_dialog_ids.begin(), r_dialog_ids.end(), - [](auto &r_dialog_id) { return r_dialog_id.is_error(); })) { + if (any_of(r_dialog_ids, [](const auto &r_dialog_id) { return r_dialog_id.is_error(); })) { LOG(ERROR) << "Can't parse " << it.second; reload_pinned_dialogs(DialogListId(folder_id), Auto()); } else { @@ -13617,8 +13616,7 @@ void MessagesManager::init() { } auto counts = transform(full_split(Slice(it.second)), [](Slice str) { return to_integer_safe(str); }); - if ((counts.size() != 4 && counts.size() != 6) || - std::any_of(counts.begin(), counts.end(), [](auto &c) { return c.is_error(); })) { + if ((counts.size() != 4 && counts.size() != 6) || any_of(counts, [](const auto &c) { return c.is_error(); })) { LOG(ERROR) << "Can't parse " << it.second; } else { DialogListId dialog_list_id(r_dialog_list_id.ok()); diff --git a/td/telegram/StoryManager.cpp b/td/telegram/StoryManager.cpp index 27bd287e5..c0a8db047 100644 --- a/td/telegram/StoryManager.cpp +++ b/td/telegram/StoryManager.cpp @@ -54,7 +54,6 @@ #include "td/utils/Time.h" #include "td/utils/tl_helpers.h" -#include #include namespace td { @@ -2691,8 +2690,7 @@ bool StoryManager::has_suggested_reaction(const Story *story, const ReactionType return false; } CHECK(story != nullptr); - return std::any_of(story->areas_.begin(), story->areas_.end(), - [&reaction_type](const MediaArea &area) { return area.has_reaction_type(reaction_type); }); + return any_of(story->areas_, [&reaction_type](const auto &area) { return area.has_reaction_type(reaction_type); }); } bool StoryManager::can_use_story_reaction(const Story *story, const ReactionType &reaction_type) const { @@ -4664,8 +4662,7 @@ void StoryManager::get_dialogs_to_send_stories(Promisetd_db()->get_binlog_pmc()->erase(pmc_key); } else { diff --git a/td/telegram/net/DcOptionsSet.cpp b/td/telegram/net/DcOptionsSet.cpp index e9816cd18..4589f52b7 100644 --- a/td/telegram/net/DcOptionsSet.cpp +++ b/td/telegram/net/DcOptionsSet.cpp @@ -110,7 +110,7 @@ vector DcOptionsSet::find_all_connections(DcId dc_ if (!static_options.empty()) { options = std::move(static_options); } else { - bool have_ipv4 = std::any_of(options.begin(), options.end(), [](auto &v) { return !v.option->is_ipv6(); }); + bool have_ipv4 = td::any_of(options, [](const auto &v) { return !v.option->is_ipv6(); }); if (have_ipv4) { td::remove_if(options, [](auto &v) { return v.option->is_ipv6(); }); } @@ -122,13 +122,13 @@ vector DcOptionsSet::find_all_connections(DcId dc_ } if (prefer_ipv6) { - bool have_ipv6 = std::any_of(options.begin(), options.end(), [](auto &v) { return v.option->is_ipv6(); }); + bool have_ipv6 = td::any_of(options, [](const auto &v) { return v.option->is_ipv6(); }); if (have_ipv6) { td::remove_if(options, [](auto &v) { return !v.option->is_ipv6(); }); } } - bool have_media_only = std::any_of(options.begin(), options.end(), [](auto &v) { return v.option->is_media_only(); }); + bool have_media_only = td::any_of(options, [](const auto &v) { return v.option->is_media_only(); }); if (have_media_only) { td::remove_if(options, [](auto &v) { return !v.option->is_media_only(); }); } diff --git a/tdutils/td/utils/algorithm.h b/tdutils/td/utils/algorithm.h index d6ace2506..1b4f09492 100644 --- a/tdutils/td/utils/algorithm.h +++ b/tdutils/td/utils/algorithm.h @@ -166,6 +166,16 @@ bool contains(const V &v, const T &value) { return false; } +template +bool any_of(const V &v, F &&f) { + for (const auto &x : v) { + if (f(x)) { + return true; + } + } + return false; +} + template bool all_of(const V &v, F &&f) { for (const auto &x : v) { diff --git a/tdutils/test/ChainScheduler.cpp b/tdutils/test/ChainScheduler.cpp index ba4cdbd15..5418cd13a 100644 --- a/tdutils/test/ChainScheduler.cpp +++ b/tdutils/test/ChainScheduler.cpp @@ -151,7 +151,7 @@ TEST(ChainScheduler, Stress) { }; auto check_parents_ok = [&](const QueryWithParents &query_with_parents) -> bool { - return td::all_of(query_with_parents.parents, [](auto &parent) { return parent->is_ok; }); + return td::all_of(query_with_parents.parents, [](const auto &parent) { return parent->is_ok; }); }; auto to_query_ptr = [&](TaskId task_id) {