1 // 2 // Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2021 3 // 4 // Distributed under the Boost Software License, Version 1.0. (See accompanying 5 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 // 7 #pragma once 8 9 #include "td/telegram/MessageEntity.h" 10 #include "td/telegram/MessageId.h" 11 #include "td/telegram/ReplyMarkup.h" 12 13 #include "td/utils/common.h" 14 #include "td/utils/StringBuilder.h" 15 16 namespace td { 17 18 struct MessageCopyOptions { 19 bool send_copy = false; 20 bool replace_caption = false; 21 FormattedText new_caption; 22 MessageId top_thread_message_id; 23 MessageId reply_to_message_id; 24 unique_ptr<ReplyMarkup> reply_markup; 25 26 MessageCopyOptions() = default; MessageCopyOptionsMessageCopyOptions27 MessageCopyOptions(bool send_copy, bool remove_caption) : send_copy(send_copy), replace_caption(remove_caption) { 28 } 29 }; 30 31 inline StringBuilder &operator<<(StringBuilder &string_builder, MessageCopyOptions copy_options) { 32 if (copy_options.send_copy) { 33 string_builder << "CopyOptions[replace_caption = " << copy_options.replace_caption; 34 if (copy_options.replace_caption) { 35 string_builder << ", new_caption = " << copy_options.new_caption; 36 } 37 if (copy_options.top_thread_message_id.is_valid()) { 38 string_builder << ", in thread of " << copy_options.top_thread_message_id; 39 } 40 if (copy_options.reply_to_message_id.is_valid()) { 41 string_builder << ", in reply to " << copy_options.reply_to_message_id; 42 } 43 if (copy_options.reply_markup != nullptr) { 44 string_builder << ", with reply markup"; 45 } 46 string_builder << "]"; 47 } 48 return string_builder; 49 } 50 51 } // namespace td 52